Ich bin ein Anfänger zu entfachen, und ich möchte verwandeln unter Quelle Datenrahmen (Last von JSON-Datei):Spark-Datenrahmen mehrere Zeilen Spalte Transformation
+--+-----+-----+
|A |count|major|
+--+-----+-----+
| a| 1| m1|
| a| 1| m2|
| a| 2| m3|
| a| 3| m4|
| b| 4| m1|
| b| 1| m2|
| b| 2| m3|
| c| 3| m1|
| c| 4| m3|
| c| 5| m4|
| d| 6| m1|
| d| 1| m2|
| d| 2| m3|
| d| 3| m4|
| d| 4| m5|
| e| 4| m1|
| e| 5| m2|
| e| 1| m3|
| e| 1| m4|
| e| 1| m5|
+--+-----+-----+
In unter Ergebnis Datenrahmen:
+--+--+--+--+--+--+
|A |m1|m2|m3|m4|m5|
+--+--+--+--+--+--+
| a| 1| 1| 2| 3| 0|
| b| 4| 2| 1| 0| 0|
| c| 3| 0| 4| 5| 0|
| d| 6| 1| 2| 3| 4|
| e| 4| 5| 1| 1| 1|
+--+--+--+--+--+--+
Hier ist die Transformation Regel:
Das Ergebnis Datenrahmen wird Namen mit
A + (n major columns)
wo diemajor
Spalten bestand von angegeben sind:sorted(src_df.map(lambda x: x[2]).distinct().collect())
Das Ergebnis Datenrahmen
m
Zeilen enthält, wobei die Werte fürA
Spalte vorgesehen sind:sorted(src_df.map(lambda x: x[0]).distinct().collect())
Der Wert für jeden Major Spalte im Ergebnisdatenrahmen ist der Wert von dem Quelldatenrahmen auf dem entsprechenden
A
und Haupt (z.B. die Zählung in Zeile 1 in Quelle Datenrahmen wird diebox
abgebildet, woA
a
und Spaltem1
)Die Kombinationen von
A
undmajor
in Quelle Datenrahmen ist keine Duplizierung (bitte einen Primärschlüssel auf den beiden Säulen betrachten in SQL)
Ich versuche, von ein paar Daten zu holen mit dem genauen Format aus der Tabelle vorhandenen Datenbank, wie jede Zeile pro ‚A‘ pro ‚major‘ ein Merkmal darstellt, zu einem 'A', also muss ich den Datenrahmen in das Format umwandeln, das ich gepostet habe, also kann ich die Daten in die ALS Funkenberechnung portieren. – resec
Lassen Sie mich wissen, wenn ich den Funken falsch benutze und richtig diese Datentransformation außerhalb des Funkens machen soll. – resec