Elegante Json glätten in Spark

8

Ich habe das folgende Datenfeld in Spark:

%Vor%

Was ich tun möchte, ist diesen Datenrahmen zu glätten, so dass prop_1 ... prop_n auf der obersten Ebene existiert. Ie.

%Vor%

Es gibt mehrere Lösungen für ähnliche Probleme. Das Beste, was ich finden kann, ist hier . Lösung funktioniert jedoch nur, wenn properties vom Typ Array ist. In meinem Fall sind Eigenschaften vom Typ StructType .

Ein alternativer Ansatz wäre etwa:

%Vor%

Aber in diesem Fall muss ich jede Zeile explizit angeben, und das ist unelegant.

Was ist der beste Weg, um dieses Problem zu lösen?

    
Logister 27.01.2016, 02:51
quelle

1 Antwort

11

Wenn Sie nicht nach einer rekursiven Lösung suchen, dann sollte in 1.6+ Punktsyntax mit Stern gut funktionieren:

%Vor%

Leider funktioniert das in 1.5 und davor nicht.

In diesem Fall können Sie benötigte Informationen einfach direkt aus dem Schema extrahieren. Sie finden ein Beispiel in Löschen einer verschachtelten Spalte aus Spark DataFrame , die leicht an dieses und ein anderes Szenario angepasst werden kann one (rekursive Schemaplatentierung in Python) Pyspark: Ordnen Sie ein SchemaRDD in ein SchemaRDD zu.

    
zero323 27.01.2016, 10:19
quelle

Tags und Links