Submitting Python file and Java jars to Spark- Error: No main class set in JAR; please specify one with --class
Submitting Python file and Java jars to Spark- Error: No main class set in JAR; please specify one with --class
我必须使用 py4j 执行带有用户定义 Java 函数的 python 文件。
我正在使用 spark-submit 命令将 pyfiles 和 jars 发送给执行者。我为 Py4j 编写的代码将处理其余部分。
但是我收到了错误消息
Error: No main class set in JAR; please specify one with --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 class。我有 python 个文件,那么我应该准确指定什么?
我还使用了 --jars、--conf spark.executor.extraClassPath、--driver-class-path 选项将 jar 发送给执行程序,因为它包含用户定义的函数。
简单地提及 --jars 或 --driver-class-path 并没有完成工作所以尝试了第三个参数,这引发了错误。
提前致谢。
“--conf spark.executor.extraClassPath=”和“/home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar”之间有一个 space,如下所示-
--conf spark.executor.extraClassPath= /home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar
还将 --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
这解决了我的问题。
我必须使用 py4j 执行带有用户定义 Java 函数的 python 文件。 我正在使用 spark-submit 命令将 pyfiles 和 jars 发送给执行者。我为 Py4j 编写的代码将处理其余部分。
但是我收到了错误消息
Error: No main class set in JAR; please specify one with --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 class。我有 python 个文件,那么我应该准确指定什么?
我还使用了 --jars、--conf spark.executor.extraClassPath、--driver-class-path 选项将 jar 发送给执行程序,因为它包含用户定义的函数。
简单地提及 --jars 或 --driver-class-path 并没有完成工作所以尝试了第三个参数,这引发了错误。
提前致谢。
“--conf spark.executor.extraClassPath=”和“/home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar”之间有一个 space,如下所示-
--conf spark.executor.extraClassPath= /home/USER/DEFINED_FUNCTIONS/IN JAVA/XYZ/XYZ.jar
还将 --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
这解决了我的问题。