Ist es möglich, eine in Scala geschriebene UDF (oder Funktion) in PySpark zu verwenden? ZB:Registrierung UDF zu SqlContext von Scala zur Verwendung in PySpark
val mytable = sc.parallelize(1 to 2).toDF("spam")
mytable.registerTempTable("mytable")
def addOne(m: Integer): Integer = m + 1
// Spam: 1, 2
In Scala ist folgendes möglich:
val UDFaddOne = sqlContext.udf.register("UDFaddOne", addOne _)
val mybiggertable = mytable.withColumn("moreSpam", UDFaddOne(mytable("spam")))
// Spam: 1, 2
// moreSpam: 2, 3
Ich möchte "UDFaddOne" in PySpark verwenden wie
%pyspark
mytable = sqlContext.table("mytable")
UDFaddOne = sqlContext.udf("UDFaddOne") # does not work
mybiggertable = mytable.withColumn("+1", UDFaddOne(mytable("spam"))) # does not work
Hintergrund: Wir sind ein Team von Entwicklern, von denen einige in Scala und einige in Python kodieren, und möchten bereits geschriebene Funktionen teilen. Es wäre auch möglich, es in einer Bibliothek zu speichern und zu importieren.
Vielen Dank für diese und Ihre anderen Antworten - ich löste es wie Sie vorgeschlagen! – Andarin