2016-04-13 3 views
0

次の簡単なスクリプトはpysparkで正常に動作して実行したときに、ドライバのバージョンの競合を:pySparkは、労働者がある - それは、端末から実行されたときロデオ

import pyspark 

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

しかし、ロデオで実行したとき、それは、エラーが発生し、ほとんどの重要な行は言う:

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ファイルはfollが含まれています行:

export PYSPARK_PYTHON=python3 
export PYSPARK_DRIVER_PYTHON=python3 

問題が解決しないことともかかわらず、いずれか、問題を解決していません~/.bashrcで同じ行を置きます。

ロデオバージョン:1.3.0

スパークバージョン:1.6.1

プラットフォーム:Linuxの

+0

他の質問と私の問題を解決することはできませんが、あなたのコメントは私が含むことを忘れて信じられないほど重要な情報を思い出させ、 –

+0

また、私は解決策への正しい道に私を置いて、もう一度ありがとう!私が提出した答えは、鉱山が重複している疑いがある質問で提供された回答の1つに似ていますが、その回答を提供したユーザーは適切なコードをどこに置くべきかを特定していませんでした。 –

+0

私はまだ '$ SPARK_HOME/conf/spark-env.sh'からこれらを選んでいないのです。奇妙な... – zero323

答えて

1

この問題は、ここで説明したものに関連している:link

ロデオデスクトップアプリとしてシェル環境変数を扱うのは苦労します。そのトリックは、普通に宣言していた変数を、spark-env.shというロデオの.rodeoprofileの代わりにosモジュールを使用して追加することです。具体 .rodeoprofile に次の行を追加この場合助け:

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

(第2の一方は冗長であり、私は、ドライバがとにかく3.5を使用するように一貫性のためにそれを追加しても)私が読んでいる

+0

.rodeoprofileファイルを作成できませんでした。それはどこにありますか? – Bade

関連する問題