Betrachten Sie den Code untenSpark-UDF gibt eine Länge des Feldes statt Länge Wert
object SparkUDFApp {
def main(args: Array[String]) {
val df = ctx.read.json(".../example.json")
df.registerTempTable("example")
val fn = (_: String).length // % 10
ctx.udf.register("len10", fn)
val res0 = ctx sql "SELECT len10('id') FROM example LIMIT 1" map {_ getInt 0} collect
println(res0.head)
}
}
JSON Beispiel
{"id":529799371026485248,"text":"Example"}
Der Code eine Länge des Feldes Wert von JSON (zB 'zurückkehren sollte id 'hat den Wert 18). Aber anstatt "18" zurückzugeben, gibt es "2" zurück, was die Länge von "id" ist, nehme ich an.
Also meine Frage ist, wie UDF neu zu schreiben, um es zu beheben?