Это для проекта PySpark / Databricks:
Я написал библиотеку Scala JAR и представил ее функции в виде UDF через простую оболочку Python;все работает, как и должно быть в моих ноутбуках PySpark.Однако, когда я пытаюсь использовать любую из функций, импортированных из JAR в среде sc.parallelize(..).foreach(..)
, выполнение продолжает умирать со следующей ошибкой:
TypeError: 'JavaPackage' object is not callable
в этой строке в оболочке:
jc = get_spark()._jvm.com.company.package.class.get_udf(function.__name__)
Я подозреваю, что библиотека JAR недоступна в параллельном контексте, так как, если я заменю путь к библиотеке на какой-то бред, ошибка останется точно такой же.
Я не смогчтобы найти необходимые подсказки в документации по Spark.Использование sc.addFile("dbfs:/FileStore/path-to-library.jar")
не помогло.