相关疑难解决方法(0)

AWS EMR - ModuleNotFoundError:没有名为“pyarrow”的模块

我在使用 Apache Arrow Spark 集成时遇到了这个问题。

使用 AWS EMR 和 Spark 2.4.3

在本地 Spark 单机实例和 Cloudera 集群上测试了这个问题,一切正常。

在spark-env.sh中设置这些

export PYSPARK_PYTHON=python3
export PYSPARK_PYTHON_DRIVER=python3
Run Code Online (Sandbox Code Playgroud)

在 Spark shell 中确认了这一点

spark.version
2.4.3
sc.pythonExec
python3
SC.pythonVer
python3
Run Code Online (Sandbox Code Playgroud)

使用 apache arrow 集成运行基本的 pandas_udf 会导致错误

from pyspark.sql.functions import pandas_udf, PandasUDFType

df = spark.createDataFrame(
    [(1, 1.0), (1, 2.0), (2, 3.0), (2, 5.0), (2, 10.0)],
    ("id", "v"))

@pandas_udf("id long, v double", PandasUDFType.GROUPED_MAP)
def subtract_mean(pdf):
    # pdf is a pandas.DataFrame
    v = pdf.v
    return pdf.assign(v=v - v.mean())

df.groupby("id").apply(subtract_mean).show()
Run Code Online (Sandbox Code Playgroud)

aws emr 上出现错误 …

amazon-emr apache-spark pyspark apache-arrow pyarrow

7
推荐指数
1
解决办法
7253
查看次数