Я попытался запустить 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
Есть идеи?Спасибо!