UDF 的 Pyspark 错误:py4j.Py4JException:方法 __getnewargs__([]) 不存在错误

Pyspark error with UDF: py4j.Py4JException: Method __getnewargs__([]) does not exist error

我正在尝试解决以下错误(我正在使用 databricks 平台和 spark 2.0)

tweets_cleaned.createOrReplaceTempView("tweets_cleanedSQL")
def Occ(keyword):
  occurences = spark.sql("SELECT * \
                                FROM tweets_cleanedSQL \
                                WHERE LOWER(text) LIKE '%" + keyword + "%' \
                            ")
  return occurences.count()


occurences_udf = udf(Occ)

如果我 运行 此代码,我会收到以下错误:

py4j.Py4JException: 方法 getnewargs([]) 不存在 ==> 只有在尝试定义 udf 时才会发生错误。

UDF 函数将常规函数转换为应用于输入列的任何元素的函数。您不能让此函数调用 spark 函数(在这种情况下,您正在调用 spark.sql,这又需要创建不支持的工作人员等。