Apache spark “如何修复”;导入错误:PyArrow>;=必须安装0.8.0;但是,没有找到它。”;?

Apache spark “如何修复”;导入错误:PyArrow>;=必须安装0.8.0;但是,没有找到它。”;?,apache-spark,pyspark,pyspark-sql,Apache Spark,Pyspark,Pyspark Sql,我使用PySpark 2.4.0,在PySpark中执行以下代码时: $ ./bin/pyspark Python 2.7.16 (default, Mar 25 2019, 15:07:04) ... Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 2.4.0 /_

我使用PySpark 2.4.0,在
PySpark
中执行以下代码时:

$ ./bin/pyspark
Python 2.7.16 (default, Mar 25 2019, 15:07:04)
...
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 2.4.0
      /_/

Using Python version 2.7.16 (default, Mar 25 2019 15:07:04)
SparkSession available as 'spark'.
>>> from pyspark.sql.functions import pandas_udf
>>> from pyspark.sql.functions import pandas_udf, PandasUDFType
>>> from pyspark.sql.types import IntegerType, StringType
>>> slen = pandas_udf(lambda s: s.str.len(), IntegerType())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/x/spark/python/pyspark/sql/functions.py", line 2922, in pandas_udf
    return _create_udf(f=f, returnType=return_type, evalType=eval_type)
  File "/Users/x/spark/python/pyspark/sql/udf.py", line 47, in _create_udf
    require_minimum_pyarrow_version()
  File "/Users/x/spark/python/pyspark/sql/utils.py", line 149, in require_minimum_pyarrow_version
    "it was not found." % minimum_pyarrow_version)
ImportError: PyArrow >= 0.8.0 must be installed; however, it was not found.
$。/bin/pyspark
Python 2.7.16(默认值,2019年3月25日,15:07:04)
...
欢迎来到
____              __
/ __/__  ___ _____/ /__
_\ \/ _ \/ _ `/ __/  '_/
/__/.\uuu/\\ uuu//\ u/\\ u2.4.0版
/_/
使用Python版本2.7.16(默认值,2019年3月25日15:07:04)
SparkSession可用作“spark”。
>>>从pyspark.sql.functions导入
>>>从pyspark.sql.functions导入pandasuudf,PandasUDFType
>>>从pyspark.sql.types导入IntegerType、StringType
>>>slen=pandas\u udf(lambda s:s.str.len(),IntegerType())
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
pandas_udf中的文件“/Users/x/spark/python/pyspark/sql/functions.py”,第2922行
return\u create\u udf(f=f,returnType=return\u type,evalType=eval\u type)
文件“/Users/x/spark/python/pyspark/sql/udf.py”,第47行,在
需要\u最小\u pyarrow\u版本()
文件“/Users/x/spark/python/pyspark/sql/utils.py”,第149行,在require\u minimum\u pyarrow\u版本中
“找不到它。”%minimum\u pyarrow\u版本)
导入错误:必须安装PyArrow>=0.8.0;但是,没有找到它。

如何修复?

本例中的错误消息具有误导性,
pyarrow
未安装

根据官方文档(导致),您只需执行以下命令之一:

$ conda install -c conda-forge pyarrow

在适当的用户和Python版本下运行它也很重要。也就是说,如果在根目录下使用Python3的齐柏林飞艇,可能需要执行它

# pip3 install pyarrow

相反

重新安装
pyarrow
才是适合我的:

$ pip uninstall pyarrow -y
$ pip install pyarrow

然后重新启动内核。

我也遇到了这个问题,但事实证明这是一个虚拟环境问题

所以我跑:

conda deactivate
conda activate <NAME_OF_VENV>
conda停用
康达激活

然后我就可以正常安装了。

我遇到了同样的问题,让
pyarrow
使用Spark 2.3。 以下是已解决的问题:

  • 卸载熊猫,因为我来取deb9包

    sudo apt get remove python pandas

  • 安装熊猫(
    pandas(0.24.2)

    sudo pip安装程序

  • 安装pyarrow(
    pyarrow(0.16.0)
    ):

    sudo pip安装pyarrow

  • 将以下内容添加到
    spark env.sh

    ARROW\u PRE\u 0\u 15\u IPC\u格式=1

  • 重新启动所有工作程序和主程序

  • 运行
    pyspark


  • PyArrow真的安装了吗?我觉得这个错误一定是误导性的。不,不是。我已经这样做了,但还没有起作用。它可能与安装它的文件夹有关吗?如果我做$pip列表,我可以看到pyarrow 0.16.0我已经做了,但还没有工作。它可能与安装它的文件夹有关吗?如果我使用$pip列表,我可以看到pyarrow 0.16.0该部分“重新启动所有工作程序和主程序”听起来像是使用Spark Standalone cluster,您是对的,在安装pyarrow for Spark(
    pyarrow
    工具和节点)后,它们必须重新启动。
    conda deactivate
    conda activate <NAME_OF_VENV>