相关疑难解决方法(0)

熊猫UDF和pyarrow 0.15.0

我最近开始pyspark在EMR群集上运行的许多作业中遇到一堆错误。错误是

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)...

Run Code Online (Sandbox Code Playgroud)

它们似乎都发生在apply熊猫系列的功能中。我发现的唯一更改是pyarrow在星期六(05/10/2019)更新的。测试似乎适用于0.14.1

所以我的问题是,是否有人知道这是新更新的pyarrow中的错误,还是有一些重大更改会导致pandasUDF将来难以使用?

pandas apache-spark pyspark pyarrow

5
推荐指数
1
解决办法
402
查看次数

PySpark 2.4.4 toPandas 失败,出现 ValueError 没有足够的值来解包(预期 3,得到 2)

在 Spark 数据帧上,当我执行“toPandas”时,我最终出现此错误:

pandas_df = Spark_df.toPandas()

文件“/opt/mapr/spark/spark-2.4.4/python/lib/pyspark.zip/pyspark/sql/dataframe.py”,第 2122 行,位于 toPandas 中

文件“/opt/mapr/spark/spark-2.4.4/python/lib/pyspark.zip/pyspark/sql/dataframe.py”,第 2180 行,位于 _collectAsArrow 中

ValueError:没有足够的值来解压(预期为 3,实际为 2)

Spark 版本 - 2.4.4 Pyarrow 版本 - 0.14.1

Spark 2.3.1 和 pyarrow 0.9.0 也同样适用。

有什么帮助可以用 Spark 2.4.4 解决这个问题吗?

python apache-spark-sql pyspark pyarrow

5
推荐指数
0
解决办法
949
查看次数