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

时间:2016-11-28 16:13:18

标签: 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)

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

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

1 个答案:

答案 0 :(得分:4)

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