Databricks-connect с Python + UDF Scala в файле JAR, не работающем локально - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь использовать JAR-файл в python (используя Databricks-connect) в Vs Code.

Я уже проверил путь к файлу jar.

У меня есть следующий код в качестве примера:

import datetime
import time
from pyspark.sql import SparkSession
from pyDataHub import LoadProcessorBase, ProcessItem
from pyspark.sql.functions import col, lit, sha1, concat, udf, array
from pyspark.sql import functions
from pyspark.sql.types import TimestampType, IntegerType, DoubleType, StringType
from pyspark import SparkContext
from pyspark.sql.functions import sha1, upper
from pyspark.sql.column import Column, _to_java_column, _to_seq


spark = SparkSession \
    .builder \
    .config("spark.jars", "/users/Phill/source/jar/DataHub_Core_Functions.jar") \
    .getOrCreate()

sc = spark.sparkContext

def PhillHash(col):
  f = sc._jvm.com.narato.datahub.core.HashContentGenerator.getGenerateHashUdf()
  return  upper(sha1(Column(f.apply(_to_seq(sc, [col], _to_java_column)))))

sc._jsc.addJar("/users/Phill/source/jar/DataHub_Core_Functions.jar")

spark.range(100).withColumn("test", PhillHash("id")).show()

Любая помощь будет признательна, потому что у меня нет вариантов здесь ...

Я получаю следующую ошибку:

Исключение: объект TypeError 'JavaPackage' не может быть вызван

1 Ответ

0 голосов
/ 23 июня 2019

Добавьте jar-файл в папку dbfs и обновите путь соответствующим образом. Рабочие не могут подключиться к вашей локальной файловой системе.

Также убедитесь, что вы используете версию 5.4 среды выполнения блоков данных (или выше).

...