Pandas UDF的PySpark加载包

问题描述

我曾尝试关注Databricks的博客帖子here,但不幸的是一直收到错误。我正在尝试安装PANDA、PYARROW、NumPY和h3库,然后能够访问我的PySpark集群上的这些库,但按照这些说明操作是不起作用的。

  1. Conda init--All(然后关闭并重新打开终端)
  2. conda create-y-n pyspark_conda_env-c conda-forge pyrow 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()

我可以做到这一点,但当我实际尝试运行 pandas UDF时,我收到错误:ModuleNotFoundError: No module named 'numpy'

如何解决此问题并使用 pandas UDF?


解决方案

我最终解决了这个问题,方法是为我的AWS EMR集群编写一个引导脚本,该脚本将在所有节点上安装我需要的所有包。我始终无法按照上面的说明正常工作。

有关引导脚本的文档可以在以下位置找到:https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html

相关文章