在JAR文件中使用Python + Scala UDF进行数据砖连接无法在本地工作

时间:2019-06-21 14:47:00

标签: pyspark databricks

我正在尝试在Vs Code中使用python(使用Databricks-connect)中的JAR文件。

我已经检查了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 :(得分:0)

将jar添加到dbfs位置,并相应地更新路径。工作人员无法连接到本地文件系统。

还要确保您正在运行5.4版本的databricks运行时(或更高版本)。