py4j.protocol.Py4JError с использованием jar-файлов в PySpark - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь использовать библиотеки XGBoost для Scala, которые могут работать на спарке. Для этого я использую файлы jar. Я скачал файлы jar для scala xgboost с xgboost4j-spark_2.11-0.80-p1.jar и xgboost4j_2.11-0.80-p1.jar . Я поместил их в папку jars $SPARK_HOME.

После этого я опробовал следующую строку

sc._jvm.ml.dmlc.xgboost4j.scala.spark.XGBoostClassifier("dasd")

Это привело к следующей ошибке

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/py4j/java_gateway.py", line 1159, in send_command
    raise Py4JNetworkError("Answer from Java side is empty")
py4j.protocol.Py4JNetworkError: Answer from Java side is empty

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/py4j/java_gateway.py", line 985, in send_command
    response = connection.send_command(command)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/py4j/java_gateway.py", line 1164, in send_command
    "Error while receiving", e, proto.ERROR_ON_RECEIVE)
py4j.protocol.Py4JNetworkError: Error while receiving   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

    ... 45 more
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/py4j/java_gateway.py", line 1598, in __getattr__
    raise Py4JError("{0} does not exist in the JVM".format(new_fqn))
py4j.protocol.Py4JError: ml.dmlc.xgboost4j.scala.spark.XGBoostClassifier does not exist in the JVM

Первоначально я думал, что это из-за того, что система не может найти банки. Чтобы проверить эту гипотезу, я добавил новый jar в папку $SPARK_HOME/jars. Баночка находится здесь . Я запустил следующую строку

>>> sc._jvm.com.ippontech.Hello.Hello.hello('cat')
hello, cat

Работает без проблем. Я начинаю верить, что проблема в jar-файлах, но я не уверен, что делать дальше.

Это то, что я использую

macOS Mojave
java version "1.8.0_45"
spark 2.3.1
scala 2.11.12
python 3.6.0
...