0

当从终端运行以下简单脚本时,它在 pyspark 中运行良好:

import pyspark

sc = pyspark.SparkContext()
foo = sc.parallelize([1,2])
foo.foreach(print)

但是当在 Rodeo 中运行时,它会产生一个错误,其中最重要的一行是:

Exception: Python in worker has different version 2.7 than that in driver 3.5, PySpark cannot run with different minor versions

完整的错误输出可以在这个链接中找到:http: //pastebin.com/raw/unGuGLhq

我的$SPARK_HOME/conf/spark-env.sh文件包含以下几行:

export PYSPARK_PYTHON=python3
export PYSPARK_DRIVER_PYTHON=python3

尽管如此,问题仍然存在,并且放入相同的行~/.bashrc也不能解决问题。

竞技版:1.3.0

火花版本:1.6.1

平台:Linux

4

1 回答 1

2

此问题与此处描述的问题有关:链接

Rodeo 作为桌面应用程序很难使用 shell 环境变量。诀窍是将我们通常在spark-env.sh中声明的变量放在 Rodeo 的.rodeoprofile中,而不是使用os模块来添加它们。特别是在这种情况下,将以下行添加到.rodeoprofile有助于:

os.environ["PYSPARK_PYTHON"]="python3"
os.environ["PYSPARK_DRIVER_PYTHON"]="python3"

(虽然第二个是多余的,我添加它只是为了保持一致性,因为驱动程序无论如何都使用 3.5)

于 2016-04-13T14:25:25.050 回答