2
閱讀和this讓我覺得有可能有一個python文件被執行但我無法得到它的工作。使用火花提交與蟒蛇主
我的設置有點複雜。我需要將幾個不同的jar文件與我的python文件一起提交,以便使所有功能都可用。我pyspark
命令,它的工作原理是這樣的:
IPYTHON=1 ./pyspark --jars jar1.jar,/home/local/ANT/bogoyche/dev/rhine_workspace/env/Scala210-1.0/runtime/Scala2.10/scala-library.jar,jar2.jar --driver-class-path jar1.jar:jar2.jar
from sys import path
path.append('my-module')
from my-module import myfn
myfn(myargs)
我已經打包的雞蛋裏面我的Python文件和雞蛋中含有的主要文件,通過調用python myegg.egg
我現在想使雞蛋可執行以形成我的命令,我似乎無法做到。這裏就是我:
./spark-submit --jars jar1.jar,jar2.jar --py-files path/to/my/egg.egg arg1 arg
Error: Cannot load main class from JAR file:/path/to/pyspark/directory/arg1
Run with --help for usage help or --verbose for debug output
代替執行我.egg文件,它走的是雞蛋的第一個參數,並認爲這是一個jar文件,並嘗試從它加載一個類?我究竟做錯了什麼?
謝謝。我只是想明白了。然而,它只適用於我的本地機器,而不適用於Map Reduce集羣; /由於某種原因,只要我提供帶有額外jar的「--driver-class-path」選項,我會覆蓋默認值(我認爲)結果我得到一個錯誤'py4j.protocol.Py4JJavaError:調用None.org.apache.spark.api.java.JavaSparkContext時發生錯誤。 :java.lang.NoSuchMethodError:org.apache.http.impl.client.DefaultHttpClient.execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/client/methods/CloseableHttpResponse;'想法? – XapaJIaMnu
恐怕很難分析在這種情況下確切的問題,而不看你的實際程序和環境變量 –
問題是從我的胖罐子和火花壇版本之間的版本衝突。謝謝你的幫助! – XapaJIaMnu