我必须使用PY4J使用用户定义的Java函数执行Python文件。我正在使用Spark-Submit命令将Pyfiles和Jars发送给执行者。我为PY4J编写的代码将处理其余的。
但是我收到了一个错误
错误:jar中没有主类设置;请用 - 级
指定一个
命令如下:
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类。我有python文件,所以我应该准确指定什么?
我也使用了-jars,-conf spark.executor.extraclass, - driver-class-path选项将JAR发送给执行者,因为它包含用户定义的函数。
简单地提及 - jars或 - driver-class-path没有做这项工作,因此尝试了第三个参数,该参数引发了错误。
预先感谢。
" - conf spark.executor.extraclasspath ="one_answers"/home/home/user/user/defined_functions/in Java/xyz/xyz/xyz.jar"之间有一个空间/p>
- conf spark.executor.extraclasspath =/home/home/user/defined_functions/in Java/xyz/xyz.jar.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
这对我的问题进行了排序。