Wie erstelle ich mit Scala @ eine Zeile aus einer Liste oder einem Array in Spar
Ich versuche eine Zeile zu erstellen org.apache.spark.sql.catalyst.expressions.Row
) basierend auf der Benutzereingabe. Ich kann keine Zeile zufällig erstellen.
Ist eine Funktion zum Erstellen einer Zeile aus @ vorhandeList
oderArray
.
Für zB, wenn ich ein @ ha.csv
Datei mit folgendem Format,
"91xxxxxxxxxx,21.31,15,0,0"
Wenn die Benutzereingabe[1, 2]
dann muss ich nur die 2. Spalte und die 3. Spalte zusammen mit dem @ nehmcustomer_id
das ist die erste Spalte
Ich versuche es mit dem Code zu analysieren:
val l3 = sc.textFile("/SparkTest/abc.csv").map(_.split(" ")).map(r => (foo(input,r(0)))) `
wo foo ist definiert als
def f(n: List[Int], s: String) : Row = {
val n = input.length
var out = new Array[Any](n+1)
var r = s.split(",")
out(0) = r(0)
for (i <- 1 to n)
out(i) = r(input(i-1)).toDouble
Row(out)
}
und Eingabe ist eine Liste say
val input = List(1,2)
Ausführung dieses Codes erhalte ich l3 als:
Array[org.apache.spark.sql.Row] = Array([[Ljava.lang.Object;@234d2916])
Aber was ich will ist:
Array[org.apache.spark.sql.catalyst.expressions.Row] = Array([9xxxxxxxxxx,21.31,15])`
Dies muss übergeben werden, um ein Schema in Spark SQL zu erstellen.