当我尝试像这样启用Pyarrow优化时: spark.conf.set('spark.sql.execution.arrow.enabled', 'true') 我收到以下警告: createDataFrame attempted Arrow optimization because 'spark.sql.execution.arrow.enabled' is set to true; however failed by the reason below: TypeError: 'JavaPackage' object is not callable 我通过以下方法解决了这个问题: 1.已打印Spark会话的配置:
import os
from pyspark import SparkConf
spark_config = SparkConf().getAll()
for conf in spark_config:
print(conf)
2条答案
按热度按时间kgsdhlau1#
默认情况下,PyArrow是禁用的,但在您的情况下,它似乎是启用的,您必须从当前的spark应用程序会话或从Spark配置文件中永久地手动禁用此配置。
如果您想对所有Spark会话禁用此功能,请将下面的行添加到SPARK_HOME/conf/spark-defaults .conf.
spark.sql.execution.arrow.enabled=false
的Spark配置中但我会建议使用PyArrow如果你是在你的spark应用程序中使用Pandas,它会加快spark和Pandas之间的数据转换。
关于PyArrow的更多信息,请访问我的blog。
zaq34kh62#
我在派洛也遇到过同样的问题。
我的环境:
当我尝试像这样启用Pyarrow优化时:
spark.conf.set('spark.sql.execution.arrow.enabled', 'true')
我收到以下警告:
createDataFrame attempted Arrow optimization because 'spark.sql.execution.arrow.enabled' is set to true; however failed by the reason below: TypeError: 'JavaPackage' object is not callable
我通过以下方法解决了这个问题:
1.已打印Spark会话的配置:
这将打印Spark配置的键-值对。
1.在以下键值对中找到了我的jar文件的路径:
('spark.yarn.jars', 'path\to\jar\files')
1.找到jar文件所在的路径后,我为Pyarrow打印了jar文件的名称,如下所示:
找到以下jar:
1.然后在spark会话配置中添加arrow jar的路径:要添加多个jar文件路径,请使用:作为分隔符。
spark.conf.set('spark.driver.extraClassPath', 'path\to\jar\files\arrow-format-0.10.0.jar:path\to\jar\files\arrow-memory-0.10.0.jar:path\to\jar\files\arrow-vector-0.10.0.jar')
1.然后重新启动内核,Pyarrow优化工作正常