spark-python版本依赖与三方模块方案
(1)使用conda创建python虚拟环境、安装第三方库
假设虚拟环境是pyspark_py36,安装位置是:
1 2
| /root/miniconda3/envs/pyspark_py36 此处省略1w个字。
|
安装的第三方库是:
1 2 3 4 5
| source activate pyspark_py36
pip install pandas pip install sklearn pip install lightgbm
|
其他省略1w字。
(2)打包整个虚拟环境
进入虚拟环境目录,压缩整个文件夹
1 2
| cd /root/miniconda3/envs/ zip -r -9 -q pyspark_py36.zip pyspark_py36/
|
压缩后得到压缩包pyspark_py36.zip。
(3)将压缩是虚拟环境上传到hdfs
1 2
| # 上传 hdfs dfs –put pyspark_py36.zip /tmp/
|
(4)新建pyspark程序
没什么好说的,就是普通的pyspark程序,简单的例子如下所示:
1 2 3 4 5 6 7 8 9
|
import pandas as pd import platform
dates = pd.date_range('20130101',periods=6) print(dates) print(platform.python_version())
|
(5) 提交pyspark程序
1 2 3 4 5 6 7 8 9
| sudo -u yarn spark-submit \ --master yarn \ --deploy-mode cluster \ --queue bf_yarn_pool.development \ --num-executors 1 \ --executor-memory 1G \ --archives hdfs://ns1/tmp/pyspark_py36.zip#pyenv \ --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=pyenv/pyspark_py36/bin/python \ hdfs://ns1/tmp/test_spark_env.py
|