Pandas UDF 的 PySpark 加载包

PySpark Load Packages for Pandas UDF's

我尝试关注 Databricks 博客 post here,但不幸的是不断出现错误。我正在尝试安装 pandas、pyarrow、numpy 和 h3 库,然后能够在我的 PySpark 集群上访问这些库,但是按照这些说明操作是行不通的。

  1. conda init --all(然后关闭并重新打开终端)
  2. conda create -y -n pyspark_conda_env -c conda-forge pyarrow pandas h3 numpy python=3.7.10 conda-pack
  3. conda 激活 pyspark_conda_env
  4. conda pack -f -o pyspark_conda_env.tar.gz
import os
from pyspark.sql import SparkSession

os.environ['PYSPARK_PYTHON'] = "./environment/bin/python"
spark = SparkSession.builder.config(
    "spark.yarn.archive",  # 'spark.yarn.dist.archives' in YARN.
    "~/gzk/pyspark_conda_env.tar.gz#environment").getOrCreate()

我能够做到这一点,但是当我实际尝试 运行 a pandas udf 时,我收到错误消息:ModuleNotFoundError: No module named 'numpy'

如何解决这个问题并使用 pandas udf?

我最终通过为我的 AWS EMR 集群编写一个 bootstrap 脚本来解决这个问题,该脚本将在所有节点上安装我需要的所有包。我一直无法按照上述说明正常工作。

有关 bootstrap 脚本的文档可在此处找到:https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html