So erstellen Sie eine Zeile aus einer Liste oder einem Array in Spark mit Scala

8

Ich versuche eine Zeile ( org.apache.spark.sql.catalyst.expressions.Row ) basierend auf der Benutzereingabe zu erstellen. Ich kann keine Zeile zufällig erstellen.

Gibt es Funktionen zum Erstellen einer Zeile aus List oder Array .

Für zB., wenn ich eine .csv Datei mit dem folgenden Format habe,

%Vor%

Wenn die Benutzereingabe [1, 2] ist, muss ich nur die zweite Spalte und die dritte Spalte zusammen mit der customer_id nehmen, was die erste Spalte ist

Ich versuche es mit dem Code zu analysieren:

%Vor%

wobei foo als

definiert ist %Vor%

und Eingabe ist eine Liste sagen

%Vor%

Wenn ich diesen Code ausführe, bekomme ich l3 als:

%Vor%

Aber was ich will ist:

%Vor%

Dies muss übergeben werden, um ein Schema in Spark SQL zu erstellen

    
Anju 23.01.2015, 10:43
quelle

3 Antworten

13

Folgendes sollte funktionieren:

%Vor%     
gruggie 23.01.2015, 14:26
quelle
2

Sie vermissen die Erstellung von StructField und StructType. Siehe den offiziellen Leitfaden Ссылка , Teil Programmgesteuertes Angeben des Schemas

Ich bin kein Scala-Spezialist, aber in Python würde es so aussehen:

%Vor%

Kurz gesagt, Sie sollten sie nicht direkt in Zeilenobjekte konvertieren, sondern einfach als RDD belassen und das Schema mit applySchema

darauf anwenden     
0x0FFF 23.01.2015 14:32
quelle
0

Sie können auch versuchen:

%Vor%     
Joel Mata 18.11.2017 11:31
quelle