pandasUDF ve pyarrow 0.15.0


12

Son zamanlarda pysparkEMR kümelerinde çalışan bir dizi işte bir sürü hata almaya başladım . Errolar

java.lang.IllegalArgumentException
    at java.nio.ByteBuffer.allocate(ByteBuffer.java:334)
    at org.apache.arrow.vector.ipc.message.MessageSerializer.readMessage(MessageSerializer.java:543)
    at org.apache.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:58)
    at org.apache.arrow.vector.ipc.ArrowStreamReader.readSchema(ArrowStreamReader.java:132)
    at org.apache.arrow.vector.ipc.ArrowReader.initialize(ArrowReader.java:181)
    at org.apache.arrow.vector.ipc.ArrowReader.ensureInitialized(ArrowReader.java:172)
    at org.apache.arrow.vector.ipc.ArrowReader.getVectorSchemaRoot(ArrowReader.java:65)
    at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:162)
    at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:122)
    at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:406)
    at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
    at org.apache.spark.sql.execution.python.ArrowEvalPythonExec$$anon$2.<init>(ArrowEvalPythonExec.scala:98)
    at org.apache.spark.sql.execution.python.ArrowEvalPythonExec.evaluate(ArrowEvalPythonExec.scala:96)
    at org.apache.spark.sql.execution.python.EvalPythonExec$$anonfun$doExecute$1.apply(EvalPythonExec.scala:127)...

Hepsi applybir panda serisinin işlevlerinde gerçekleşiyor gibi görünüyor . Bulduğum tek değişiklik pyarrowCumartesi (05/10/2019) tarihinde güncellendi. Testler 0.14.1 ile çalışıyor gibi görünüyor

Öyleyse sorum şu: Herkes bu yeni güncellenmiş pyarrow bir hata olup olmadığını bilmek ya da gelecekte pandasUDF kullanımını zorlaştıracak önemli bir değişiklik var mı?

Yanıtlar:


15

Bu bir hata değil. 0.15.0'da önemli bir protokol değişikliği yaptık, bu da pyarrow'un varsayılan davranışını Java'daki Arrow'un eski sürümleriyle uyumlu değil - Spark ortamınız daha eski bir sürüm kullanıyor gibi görünüyor.

Seçenekleriniz

  • Ortam değişkenini ARROW_PRE_0_15_IPC_FORMAT=1Python kullandığınız yerden ayarlayın
  • Şimdilik pyarrow'a <0.15.0'a geçin.

Umarım Spark topluluğu yakında Java'da 0.15.0'a geçebilir, bu nedenle bu sorun ortadan kalkar.

Bu konu http://arrow.apache.org/blog/2019/10/06/0.15.0-release/ adresinde tartışılmıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.