У меня такое же требование и я тоже пробовал с Jep.К сожалению, Jep не работает для этого варианта использования.
Не найденный py4j.protocol вызван Jep ClassEnquirer, когда и python, и jave имеют библиотеку с одинаковым именем, Jep будет рассматривать библиотеку java.Вы можете решить эту проблему, исключив py4j из пакета spark из вашего java-приложения или создав настраиваемый ClassEnquirer для рассмотрения python py4j.
Вам также необходимо обновить конструктор Jep, установить для значения useSubInterpreter значение false и перестроить его.
public Jep(JepConfig config) throws JepException {
this(config, false);
}
Теперь ошибка должна быть устранена.Тем не менее, передача объекта в функцию python - это объект PyObject, содержащий ссылку на Java, который не является объектом фрейма данных pyspark, поэтому он не имеет функции toPandas ().
Альтернативным способом может быть использование gRPC илиApache Thrift, вы можете проверить документ для более подробной информации.