2017-06-07 5 views
0

py4jを使ってユーザー定義のJava関数でpythonファイルを実行する必要があります。 私はspfile-submitコマンドを使用して、pyfileとjarをエグゼキュータに送ります。私がPy4jのために書いたコードは残りの部分を処理します。PythonファイルとJava jarをSparkに送信する - エラー:JARにメインクラスが設定されていません。 --classで指定してください。 -

spark-submit --files /home/USER/PATH/SOMEFILE.txt --conf spark.executor.extraClassPath= /home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar --executor-memory 512m --driver-class-path /home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar --master local[*] --jars /home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar --driver-memory 512m --py-files /home/USER/PATH/eggs/kafka.egg,/home/USER/PATH/eggs/redis.egg,/home/USER/PATH/helloworld.egg,/home/USER/PATH/helloworld.py 

私の問題は、私が指定するJavaクラスを持っていないということです。

は、しかし、私は、エラー、次のようにコマンドがある

Error: No main class set in JAR; please specify one with --class

を受けました。私はpythonファイルを持っているので、正確に何を指定するのですか?

また、ユーザー定義関数が含まれているため、 - jars、--conf spark.executor.extraClassPath、 - ドライブのクラスパスオプションを使用してjarをエグゼキュータに送信しました。

単純に--jarsまたは--driver-class-pathを指定していないため、3番目のパラメータが試されてエラーが発生しました。

ありがとうございます。また

--conf spark.executor.extraClassPath= /home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar

below-見られるように、 "--conf spark.executor.extraClassPath =" および "/ホーム/ USER/DEFINED_FUNCTIONS/JAVA/XYZ/XYZ.jar IN" の間にスペースがありました

答えて

0

--confの設定をspark-submitコマンドの先頭に移動しました。

spark-submit --conf spark.executor.extraClassPath=/home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar --files /home/USER/PATH/SOMEFILE.txt --executor-memory 512m --driver-class-path /home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar --master local[*] --jars /home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar --driver-memory 512m --py-files /home/USER/PATH/eggs/kafka.egg,/home/USER/PATH/eggs/redis.egg,/home/USER/PATH/helloworld.egg,/home/USER/PATH/helloworld.py 

これは私の問題をソートしました。

関連する問題