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

Yor*_*ghe 2 python apache-spark pyspark databricks

我正在尝试解决以下错误(我正在使用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)
Run Code Online (Sandbox Code Playgroud)

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

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

Ass*_*son 5

UDF函数将常规函数转换为应用于输入列的任何元素的函数。您不能使用此函数调用spark函数(在这种情况下,您正在调用spark.sql,这反过来又需要创建worker等),而这是不受支持的。