通常pyspark自带的python包只能满足基本需求,当我们想使用sklearn等其他工具包时,基本的pyspark是不支持的,因为我们需要加载自定义的python。
step1
进入到bin的上一级目录,比如/pathToPython/bin/python,则我们需要进入到/pathToPython。
step2
打包当前目录下所有的文件,zip -r python.zip ./*
step3
将打包后的压缩文件提交到hdfs: hadoop fs -put python.zip /hdfs_python_path。
hdfs路径自定义即可,无特殊要求。
step4 修改pyspark-submit配置
queq=myqueue
spark-submit \
--driver-memory 4g \
--queue ${queq} \
--conf "spark.executor.cores=4" \
--conf "spark.dynamicAllocation.minExecutors=80" \
--conf "spark.dynamicAllocation.maxExecutors=250" \
--conf spark.yarn.dist.archives=/hdfs_python_path/python.zip#python \
--conf spark.executorEnv.PYSPARK_DRIVER_PYTHON=python/bin/python2.7 \
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=python/bin/python2.7 \
--conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=python/bin/python2.7 \
main.py
注意:PYSPARK_DRIVER_PYTHON和PYSPARK_PYTHON都需要配置,保持一致
spark.yarn.dist.archive设置后的#类似于重命名,与下图中红框中是一致的
image.png
网友评论