Explodieren (transponieren?) Sie mehrere Spalten in der Spark-SQL-Tabelle

Ich verwende Spark SQL (ich erwähne, dass es in Spark ist, falls es die SQL-Syntax beeinflusst - ich bin noch nicht vertraut genug, um sicher zu sein) und ich habe eine Tabelle, die ich neu strukturieren möchte, aber ich ' Ich stecke fest und versuche, mehrere Spalten gleichzeitig zu transponieren.

rundsätzlich habe ich Daten, die so aussehen:

userId    someString      varA     varB
   1      "example1"    [0,2,5]   [1,2,9]
   2      "example2"    [1,20,5]  [9,null,6]

und ich möchte sowohl varA als auch varB gleichzeitig auflösen (die Länge ist immer gleich) - so dass die endgültige Ausgabe wie folgt aussieht:

userId    someString      varA     varB
   1      "example1"       0         1
   1      "example1"       2         2
   1      "example1"       5         9
   2      "example2"       1         9
   2      "example2"       20       null
   2      "example2"       5         6

, aber ich kann nur scheinen, eine einzelne explode (var) -Anweisung zum Arbeiten in einem Befehl zu bringen, und wenn ich versuche, sie zu verketten (dh eine temporäre Tabelle nach dem ersten explode-Befehl zu erstellen), erhalte ich offensichtlich eine große Anzahl von Duplikaten. unnötige Zeilen.

Danke vielmals

Antworten auf die Frage(4)

Ihre Antwort auf die Frage