如何在Spark中正确设置python版本?
我的spark版本是2.4.0,它有python2.7和Python3.7。默认版本是python2.7。现在我想提交一个使用python3.7的pyspark程序。我试过两种方法,但都不管用如何在Spark中正确设置python版本?,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我的spark版本是2.4.0,它有python2.7和Python3.7。默认版本是python2.7。现在我想提交一个使用python3.7的pyspark程序。我试过两种方法,但都不管用 它不起作用,说 Cannot run program "/usr/bin/python3": error=13, Permission denied 但实际上,我有权限,比如说,我可以使用 /usr/bin/python3 test.py 运行python程序 这样,spark就根本不能使用pyth
Cannot run program "/usr/bin/python3": error=13, Permission denied
但实际上,我有权限,比如说,我可以使用
/usr/bin/python3 test.py
运行python程序根据我的经验,我发现在python脚本中包含spark位置往往更容易,因为使用
findspark
import findspark
spark_location='/opt/spark-2.4.3/' # Set your own
findspark.init(spark_home=spark_location)
我遇到了同样的问题 在脚本开头(in)配置env的解决方案对我不起作用 在不重新启动集群的情况下,只执行下面的命令对我有效
sudo sed -i -e '$a\export PYSPARK_PYTHON=/usr/bin/python3' /etc/spark/conf/spark-env.sh
您在哪里添加导出?您应该将它们放在spark-env.sh中并重新启动集群。此外,您还可以“作弊”并将它们放入此处报告的.py主文件中:我已经尝试了链接()中提到的方法,但仍然不起作用,并说“无法运行程序”/usr/bin/python3”:error=13,权限被拒绝“您确定有权限吗?”?实际运行.py文件的用户可能与运行原始spark submit cmd的用户不同。你有没有检查过你是否有代理用户设置?如果你把自己添加为一个超级用户,这可能会有所帮助。请看这里:当然,只有当您在纱线上运行Spark时,上述内容才有效。
import findspark
spark_location='/opt/spark-2.4.3/' # Set your own
findspark.init(spark_home=spark_location)
sudo sed -i -e '$a\export PYSPARK_PYTHON=/usr/bin/python3' /etc/spark/conf/spark-env.sh