So erstellen Sie eine Zeile von einer Liste oder Array in der Funke mit Scala

Ich versuche, eine Zeile erstellen (org.apache.spark.sql.catalyst.expressions.Row) auf der Grundlage der Benutzereingabe. Ich bin nicht in der Lage, erstellen Sie eine Zeile nach dem Zufallsprinzip.

gibt es alle Funktionen zum erstellen einer Reihe von List oder Array.

ZB., Wenn ich eine .csv - Datei mit dem folgenden format,

"91xxxxxxxxxx,21.31,15,0,0"

Wenn die Eingabe des Benutzers [1, 2] dann brauche ich nur nehmen, 2. Säule und 3. Säule zusammen mit der customer_id die die erste Spalte

Ich versuche zu analysieren, es mit dem code:

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 input ist eine Liste mit sagen

val input = List(1,2)

Ausführen dieses Codes bekomme ich l3:

Array[org.apache.spark.sql.Row] = Array([[Ljava.lang.Object;@234d2916])

Aber was ich sagen will ist:

Array[org.apache.spark.sql.catalyst.expressions.Row] = Array([9xxxxxxxxxx,21.31,15])`

Diese muss übergeben werden, erstellen Sie ein schema erstellen, in Spark SQL

InformationsquelleAutor Anju | 2015-01-23
Schreibe einen Kommentar