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,
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
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
Tags und Links scala apache-spark apache-spark-sql