Apache spark UserWarning:pyarrow.open\u流已被弃用,请使用pyarrow.ipc.open\u流警告

Apache spark UserWarning:pyarrow.open\u流已被弃用,请使用pyarrow.ipc.open\u流警告,apache-spark,pyspark,user-defined-functions,pyarrow,Apache Spark,Pyspark,User Defined Functions,Pyarrow,我正在通过pyspark本地运行spark 2.4.2,用于NLP中的一个ML项目。管道中的部分预处理步骤涉及使用通过pyarrow优化的pandas\u udf函数。每次使用预处理的spark数据帧操作时,都会出现以下警告: 用户警告:pyarrow.open\u流已被弃用,请使用pyarrow.ipc.open\u流 warnings.warn(“pyarrow.open\u流已弃用,请使用” 我尝试更新pyarrow,但未能避免警告。我的pyarrow版本为0.14。我想知道此警告的含义,

我正在通过
pyspark
本地运行
spark 2.4.2
,用于NLP中的一个ML项目。管道中的部分预处理步骤涉及使用通过
pyarrow
优化的
pandas\u udf
函数。每次使用预处理的spark数据帧操作时,都会出现以下警告:

用户警告:pyarrow.open\u流已被弃用,请使用pyarrow.ipc.open\u流 warnings.warn(“pyarrow.open\u流已弃用,请使用”

我尝试更新
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()

我在
pycharm
中也遇到了同样的问题,当使用
jupyter lab
时,它似乎工作正常

此警告来自您版本的
pyspark
,它使用了一个弃用的
pyarrow
函数


但一切正常,因此您可以暂时忽略警告,或者更新pyspark版本(在最新版本中,他们修复了不推荐使用的pyarrow函数的用法)

我最终修复了pycharm中的警告,将pyarrow从0.14降级到0.11。因此,在您环境中的项目解释器下,在终端中运行:
pip卸载pyarrow
pip安装pyarrow==0.11
警告不会出现,因此此解决方案对那些愿意在pycharmIf中使用pyarrow的人很有帮助。如果您在Databricks中收到此警告,您可能需要升级到6.2: