Ошибка Pyspark с UDF: py4j.Py4JException: метод __getnewargs__([]) не существует, ошибка

Я пытаюсь решить следующую ошибку (использую платформу 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.


person Yoren Van Couwenberghe    schedule 28.11.2016    source источник


Ответы (1)


функция UDF превращает обычную функцию в функцию, которая применяется к любому элементу входного столбца. Вы не можете использовать эту функцию для вызова функций spark (в этом случае вы вызываете spark.sql, который, в свою очередь, должен создавать рабочих и т. д., которые не поддерживаются.

person Assaf Mendelson    schedule 28.11.2016