PySpark'ta kullanmak için Scala'da yazılmış bir UDF (veya işlevi) kaydetmek mümkün mü? Ör:PySpark'ta kullanmak için Scala'dan SqlContext'e UDF'yi kaydet
Scala yılındaval mytable = sc.parallelize(1 to 2).toDF("spam")
mytable.registerTempTable("mytable")
def addOne(m: Integer): Integer = m + 1
// Spam: 1, 2
aşağıdaki artık mümkün:
val UDFaddOne = sqlContext.udf.register("UDFaddOne", addOne _)
val mybiggertable = mytable.withColumn("moreSpam", UDFaddOne(mytable("spam")))
// Spam: 1, 2
// moreSpam: 2, 3
Ben
%pyspark
mytable = sqlContext.table("mytable")
UDFaddOne = sqlContext.udf("UDFaddOne") # does not work
mybiggertable = mytable.withColumn("+1", UDFaddOne(mytable("spam"))) # does not work
Arka Plan gibi PySpark içinde "UDFaddOne" kullanmak istiyorum: Biz bir takımız Geliştiricilerin, bazılarının Scala'da ve bazılarının Python'da kodlanması ve önceden yazılmış işlevleri paylaşmak istiyoruz. Bunu bir kütüphaneye kaydetmek ve ithal etmek de mümkündür.
Bu ve diğer cevaplarınız için teşekkür ederim - önerdiğin gibi çözdüm! – Andarin