
# 在PySpark程序中使用Conda打包Python环境及第三方库
本小节旨在指导用户在PySpark环境中配置Python第三方库。使用其他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.0**
  
- 激活环境： **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
  ```
  
 
