更新时间:2025-06-25 GMT+08:00
分享

在PySpark程序中使用Conda打包Python环境及第三方库

本小节旨在指导用户在PySpark环境中配置Python第三方库,当前版本Spark仅支持Python 3.7、3.8、3.9和3.10 版本。使用其他Python版本可能会导致兼容性问题。通过使用Conda创建独立的Python环境,您可以灵活地安装和管理所需的第三方库,避免与系统Python或其他项目环境产生冲突。

准备工作

确保您的开发环境中已经安装Conda环境,支持Windows和Linux系统,您可以从Anaconda官方网站下载并安装。

创建并打包Conda环境

  • 创建环境:

    conda create -y -n pyspark_conda_env -c conda-forge conda-pack numpy python=3.9

  • 激活环境:

    conda activate pyspark_conda_env

  • 安装额外库:

    如果需要安装额外的库,可以在激活环境后使用conda install命令。

  • 打包环境:

    conda pack -f -o pyspark_conda_env.tar.gz

  • 上传压缩包

    将生成的pyspark_conda_env.tar.gz压缩包上传至您的集群的分布式文件系统(如HDFS)或对象存储服务(如OBS)。

提交PySpark作业

在提交 PySpark 作业时,添加以下参数。

  • 指定压缩包:
    --archives R_PATH/pyspark_conda_env.tar.gz#environment # R_PATH为压缩包的hdfs或obs路径
  • 配置Python环境:
    --archives R_PATH/pyspark_conda_env.tar.gz#environment # R_PATH 为压缩包的hdfs或obs路径
    # 在local模式或者yarn-client模式中,需要将上述压缩包上传至提交作业的节点,并解压
    --conf spark.pyspark.driver.python=L_PATH/pyspark_conda_env/bin/python # 请勿在Cluster模式中设置此参数,L_PATH为本地解压目录
    --conf spark.pyspark.python=./environment/bin/python
  • 对于pyspark shell交互式作业:
    pyspark --archives R_PATH/pyspark_conda_env.tar.gz#environment
    --conf spark.pyspark.driver.python=L_PATH/pyspark_conda_env/bin/python # L_PATH为pyspark_conda_env.tar.gz压缩包在本节点的解压目录
    --conf spark.pyspark.python=./environment/bin/python

相关文档