0

Azure'da Jupyter'de PySpark kullanıyorum. UDF, bir veri ağı üzerinde UDF kullanarak test etmeye çalışıyorum, ancak UDF çalışmıyor. Ben 100 satır doldurulur bu dataframe doğrulamıştırPySpark: UDF bir dataframe üzerinde çalışmıyor

users = sqlContext.sql("SELECT DISTINCT userid FROM FoodDiaryData")

:

Benim dataframe tarafından oluşturulur. Bir sonraki hücrede basit bir udf yürütmeye çalışıyorum.

def iterateMeals(user): 
    print user 

users.foreach(iterateMeals) 

Bu, çıktı üretmez. Veritabanındaki her girişin basılmış olmasını beklerdim. Ancak, sadece iterateMeals('test')'u deneyebilirsem, 'test' yazdıracak ve basacaktır.

Py4JError: Ben de aşağıdaki hatayı alırsınız,

from pyspark.sql.functions import udf 

def iterateMeals(user): 
    print user 
f_iterateMeals = udf(iterateMeals,LongType()) 

users.foreach(f_iterateMeals) 

Bunu deneyin pyspark.sql.functions kullanarak çalıştı o461 çağıran bir hata oluştu. getnewargs. Trace: py4j.Py4JException: Ben yanlış gitti nerede

birisi açıklayabilir Yöntem getnewargs ([]) yok? Bu uygulama için .foreach veri çerçevelerinin içinde udfs'yi çalıştırmaya ihtiyacım olacak. print işçi düğümlerde yürütülen ve ilgili çıkışa gider çünkü

cevap