如何修复"ImportError: PyArrow >= 0.8.0 must be installed; however, it was not found."?



我使用 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.

如何解决?

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

从官方文档 Spark SQL 指南(导致安装 PyArrow(中,您只需执行以下命令之一:

$ conda install -c conda-forge pyarrow

$ pip install pyarrow

在正确的用户和 Python 版本下运行它也很重要。 也就是说,如果一个人在 Python 3 的根下使用 Zeppelin,则可能需要执行

# pip3 install pyarrow

相反

重新安装

pyarrow对我有用:

$ pip uninstall pyarrow -y
$ pip install pyarrow

,然后重新启动内核。

我也有这个问题,但事实证明这是一个虚拟环境问题。

所以我运行:

conda deactivate
conda activate <NAME_OF_VENV>

然后我可以正常安装。

我在使用 Spark 2.3 时遇到了同样的问题pyarrow。以下解决了我的:

  1. 卸载熊猫,因为我来了 deb9 软件包

    sudo apt-get remove python-pandas

  2. 安装熊猫 ( pandas (0.24.2) (

    sudo pip install pandas

  3. 安装 Pyarrow ( pyarrow (0.16.0) (:

    sudo pip install pyarrow

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

    ARROW_PRE_0_15_IPC_FORMAT=1

  5. 重新启动所有工作线程和主节点

  6. 运行pyspark

我遇到了这个问题,但可能与您的问题无关。情况是,我使用 vscode 作为我的 IDE,使用 anaconda 作为我的 python 编译器。当我运行代码时,此通知显示在那里。我通过在我的基本环境中安装 pyarrow 来解决此问题。在此之前,我只在我的pyspark虚拟环境中安装了pyarrow。

相关内容

  • 没有找到相关文章

最新更新