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.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage