【发布时间】:2019-11-23 11:55:15
【问题描述】:
我正在通过 pyspark 在本地运行 spark 2.4.2,用于 NLP 中的 ML 项目。 Pipeline 中的部分预处理步骤涉及使用通过pyarrow 优化的pandas_udf 函数。每次我使用预处理的火花数据框进行操作时,都会出现以下警告:
用户警告:pyarrow.open_stream 已弃用,请使用 pyarrow.ipc.open_stream warnings.warn("pyarrow.open_stream 已弃用,请使用"
我尝试更新pyarrow,但未能避免警告。我的 pyarrow 版本是 0.14。我想知道这个警告的含义以及是否有人找到了解决方案?非常感谢您。
Spark 会话详细信息:
conf = SparkConf(). \
setAppName('map'). \
setMaster('local[*]'). \
set('spark.yarn.appMasterEnv.PYSPARK_PYTHON', '~/anaconda3/bin/python'). \
set('spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON', '~/anaconda3/bin/python'). \
set('executor.memory', '8g'). \
set('spark.executor.memoryOverhead', '16g'). \
set('spark.sql.codegen', 'true'). \
set('spark.yarn.executor.memory', '16g'). \
set('yarn.scheduler.minimum-allocation-mb', '500m'). \
set('spark.dynamicAllocation.maxExecutors', '3'). \
set('spark.driver.maxResultSize', '0'). \
set("spark.sql.execution.arrow.enabled", "true"). \
set("spark.debug.maxToStringFields", '100')
spark = SparkSession.builder. \
appName("map"). \
config(conf=conf). \
getOrCreate()
【问题讨论】:
-
我终于通过将 pyarrow 从 0.14 降级到 0.11 修复了 pycharm 中的警告。因此,在您的环境中的项目解释器下,在终端中运行:
pip uninstall pyarrow和pip install pyarrow==0.11从终端(或 jupyter)运行时不会出现警告,因此此解决方案对那些愿意在 pycharm 中使用 pyarrow 的人有所帮助 -
如果您在 Databricks 中收到此警告,您可能需要升级到 6.2:issues.apache.org/jira/browse/SPARK-29875
标签: apache-spark pyspark user-defined-functions pyarrow