我正在尝试使用spark3.0和python3.7.8的虚拟环境提交pyspark作业。
这是有效的:
pyspark \
> --conf spark.pyspark.virtualenv.enabled=true \
> --conf spark.pyspark.virtualenv.type=native \
> --conf spark.pyspark.virtualenv.bin.path=/usr/bin/virtualenv
20/10/09 16:38:06信息virtualenv工厂:开始安装virtualenv。。。20/10/09 16:38:06 info virtualenvfactory:运行命令:/usr/bin/virtualenv-p/usr/bin/python3--系统站点包/tmp/1602261486643-0 20/10/09 16:38:08 info virtualenvfactory:virtualenv创建于/tmp/1602261486643-0/bin/python
但当我用spark提交一份工作时
使用这些选项:
conf = SparkConf().setAll(
[
("spark.pyspark.virtualenv.enabled", "true"),
("spark.pyspark.virtualenv.type", "native"),
("spark.pyspark.virtualenv.bin.path", "/usr/bin/virtualenv")
]
)
sc = SparkContext(conf=conf)
作业不使用virtualenv,当我尝试安装python包时,它会尝试安装在以下位置:permission denied:“/usr/local/lib64/python3.7/site packages/scipy-1.5.2.dist info”
而不是像pyspark那样的tmp目录。
同样的工作在spark 2.4中也很好地工作过。
你知道为什么virtualenv和pyspark一起工作,而不是spark3.0中的sparksubmit吗?
谢谢你的帮助,
干杯,
伯特兰
暂无答案!
目前还没有任何答案,快来回答吧!