Kev*_*vin 74 apache-spark pyspark
我正在使用spark 1.4.0-rc2所以我可以使用python 3和spark.如果我添加export PYSPARK_PYTHON=python3到我的.bashrc文件,我可以使用python 3以交互方式运行spark.但是,如果我想在本地模式下运行一个独立程序,我会收到一个错误:
Exception: Python in worker has different version 3.4 than that in driver 2.7, PySpark cannot run with different minor versions
Run Code Online (Sandbox Code Playgroud)
如何为驱动程序指定python的版本?设置export PYSPARK_DRIVER_PYTHON=python3不起作用.
fcc*_*lho 71
设置PYSPARK_PYTHON=python3和PYSPARK_DRIVER_PYTHON=python3python3都适合我.我在.bashrc中使用export进行了此操作.最后,这些是我创建的变量:
export SPARK_HOME="$HOME/Downloads/spark-1.4.0-bin-hadoop2.4"
export IPYTHON=1
export PYSPARK_PYTHON=/usr/bin/python3
export PYSPARK_DRIVER_PYTHON=ipython3
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"
Run Code Online (Sandbox Code Playgroud)
我也按照本教程使其在Ipython3笔记本中工作:http://ramhiser.com/2015/02/01/configuring-ipython-notebook-support-for-pyspark/
Hol*_*den 28
您需要确保启动的独立项目是使用Python 3启动的.如果您通过spark-submit提交您的独立程序,那么它应该可以正常工作,但如果您使用python启动它,请确保使用python3启动你的应用.
另外,请确保已设置env变量./conf/spark-env.sh(如果它不存在,则可以将其spark-env.sh.template用作基础.)
Nik*_*kiy 23
帮助我的情况:
import os
os.environ["SPARK_HOME"] = "/usr/local/Cellar/apache-spark/1.5.1/"
os.environ["PYSPARK_PYTHON"]="/usr/local/bin/python3"
Run Code Online (Sandbox Code Playgroud)
小智 12
您可以通过在./conf/spark-env.sh文件中设置适当的环境变量来为驱动程序指定Python的版本.如果它尚不存在,您可以使用spark-env.sh.template提供的文件,其中还包含许多其他变量.
以下是spark-env.sh设置相关Python环境变量的文件的简单示例:
#!/usr/bin/env bash
# This file is sourced when running various Spark programs.
export PYSPARK_PYTHON=/usr/bin/python3
export PYSPARK_DRIVER_PYTHON=/usr/bin/ipython
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它将工作者/执行者使用的Python版本设置为Python3,将Python的驱动程序版本设置为iPython,以便更好地使用shell.
如果你还没有spark-env.sh文件,并且不需要设置任何其他变量,那么这个应该做你想要的,假设相关python二进制文件的路径是正确的(验证which).我有一个类似的问题,这解决了它.
我刚遇到同样的问题,这些是我为了提供Python版本而遵循的步骤.我想用Python 2.7而不是2.6来运行我的PySpark作业.
转到指向的文件夹$SPARK_HOME(在我的情况下是/home/cloudera/spark-2.1.0-bin-hadoop2.7/)
在文件夹下conf,有一个名为的文件spark-env.sh.如果您有一个名为的文件spark-env.sh.template,则需要将该文件复制到一个名为的新文件中spark-env.sh.
编辑文件并写下接下来的三行
导出PYSPARK_PYTHON =/usr/local/bin/python2.7
导出PYSPARK_DRIVER_PYTHON =/usr/local/bin/python2.7
导出SPARK_YARN_USER_ENV ="PYSPARK_PYTHON =/usr/local/bin/python2.7"
保存并再次启动您的应用程序:)
这样,如果您下载新的Spark独立版本,则可以设置要运行PySpark的Python版本.
小智 7
如果您在较大的组织中运行Spark并且无法更新/spark-env.sh文件,则导出环境变量可能无法正常工作。
您可以--conf在运行时提交作业时通过该选项添加特定的Spark设置。
pyspark --master yarn --[other settings]\
--conf "spark.pyspark.python=/your/python/loc/bin/python"\
--conf "spark.pyspark.driver.python=/your/python/loc/bin/python"
Run Code Online (Sandbox Code Playgroud)
小智 6
我遇到了同样的错误消息,我尝试了上面提到的三种方法。我列出了结果作为对其他人的补充参考。
PYTHON_SPARK和 中的PYTHON_DRIVER_SPARK值spark-env.sh对我不起作用。os.environ["PYSPARK_PYTHON"]="/usr/bin/python3.5"
os.environ["PYSPARK_DRIVER_PYTHON"]="/usr/bin/python3.5"对我不起作用。~/.bashrc像魅力一样改变作品中的价值~| 归档时间: |
|
| 查看次数: |
99507 次 |
| 最近记录: |