py4j.protocol.Py4JError: com.util.PythonHelper.test не существует в JVM - PullRequest
0 голосов
/ 28 сентября 2019

Я попытался запустить java-код с помощью pyspark, см. Этот пост https://www.crowdstrike.com/blog/spark-hot-potato-passing-dataframes-between-scala-spark-and-pyspark/

Однако я получил ошибку "не существует в JVM"

Я посмотрел предыдущий ответ, сказалМне нужно установить pythonpath, который уже существует.

bash-4.2$ echo $PYTHONPATH
/opt/spark/python:/opt/spark/python/lib/py4j-0.10.4-src.zip:

И я могу получить случайное число для утилит Java:

random = sc._jvm.java.util.Random()
print(random.nextDouble())

Ниже приведен мой код Python:

spark = SparkSession.builder.appName("PySpark using Scala example")   .getOrCreate()

sc = spark._sc


sqlContext = spark._wrapped

random = sc._jvm.java.util.Random()
print(random.nextDouble())

sc._jvm.com.util.PythonHelper.test()

Вот как я запускаю задание: spark-submit --jars spark-test.jar text_test.py file

Вот что я получил:

0.2925925818797954
Traceback (most recent call last):
  File "/home/nobody/text_test.py", line 50, in <module>
    sc._jvm.com.util.PythonHelper.test()
  File "/opt/spark/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1363, in __getattr__
    "{0}.{1} does not exist in the JVM".format(self._fqn, name))
py4j.protocol.Py4JError: com.util.PythonHelper.test does not exist in the JVM

Есть идеи?Спасибо!

...