2017-05-15 1 views
0

を実行することはできません。PySparkは、私は次のエラーを取得する、python2.7、そのようなファイルやディレクトリ

 
java.io.IOException: Cannot run program "/Users/jwayne/anaconda/envs/ds/bin/python2.7": error=2, No such file or directory 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 
    at org.apache.spark.api.python.PythonWorkerFactory.startDaemon(PythonWorkerFactory.scala:161) 
    at org.apache.spark.api.python.PythonWorkerFactory.createThroughDaemon(PythonWorkerFactory.scala:87) 
    at org.apache.spark.api.python.PythonWorkerFactory.create(PythonWorkerFactory.scala:63) 
    at org.apache.spark.SparkEnv.createPythonWorker(SparkEnv.scala:134) 
    at org.apache.spark.api.python.PythonRunner.compute(PythonRDD.scala:101) 
    at org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:70) 
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:306) 
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:270) 
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66) 
    at org.apache.spark.scheduler.Task.run(Task.scala:89) 
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.io.IOException: error=2, No such file or directory 
    at java.lang.UNIXProcess.forkAndExec(Native Method) 
    at java.lang.UNIXProcess.(UNIXProcess.java:247) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:134) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 
    ... 14 more 

私のコードは次のようになります。

from pyspark.sql.types import Row 
records = [Row(fname='john{}'.format(i), lname='doe{}'.format(i)) for i in range(10)] 
rdd = sc.parallelize(records) 
sdf = rdd.toDF() 

私がpysparkを開始する前に、次のように入力してください。

export PYSPARK_PYTHON="/Users/jwayne/anaconda/envs/ds/bin/python" 

次に、次のようにpysparkを開始します。

pyspark --master spark://master:7077 

which pythonと入力すると、次の出力が表示されます。

 
/Users/jwayne/anaconda/envs/ds/bin/python 

タイピング/usr/bin/env pythonまたは/usr/bin/env python2.7は、私は次の出力を取得します。

 
Python 2.7.13 |Anaconda 4.3.1 (x86_64)| (default, Dec 20 2016, 23:05:08) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
Anaconda is brought to you by Continuum Analytics. 
Please check out: http://continuum.io/thanks and https://anaconda.org 

私はcondaを使用してPython環境を管理しています。私が何かを実行する前に、私はすでに正しい環境を有効にするようにしています:source activate ds/Users/jwayne/anaconda/envs/ds/bin/python2.7または/Users/jwayne/anaconda/envs/ds/bin/pythonと入力すると、私はPython REPLを取得します。私が間違っていることに関するアイデアは?

マイスパーククラスター(v1.6.1)、しかし、condaを使用していません。 which python/usr/bin/pythonを返し、python --versionPython 2.6.6を返します。 Sparkクラスタにcondaをインストールするはずですか? stacktraceを見ると、Sparkクラスタに衝突する前にこの問題が発生しているようです。運転手側で起こっているようです。私にとっては、このファイル/パスが存在するかのように、私が知る限りは見えます。

私が間違っていることに関するアイデアはありますか?

答えて

0

問題は、サーバー側にありました。私はサーバーにcondaをインストールした後、それは働いた。これがサーバー側のものかクライアント側のものかは例外ではありませんでした。

0

私は、正確な問題に直面し、私は以下と同じに固定、

  1. すべて停止スパークサービス。 (必要に応じてkillを使用し、すべてのサービスがjps -mコマンドを使用して停止して確認してください。)
  2. PATHは、すべてのノードでアナコンダのpythonを取るように設定されていることを確認します。 (bachrcまたはbash_profileファイルに追加)
  3. スパーク・サービスを開始し、確認します。
  4. 以下のように、使用しているPythonを確認するためにpysparkシェルを開きます。

enter image description here

関連する問題