Gibt es eine Möglichkeit, mit verschachtelten Daten mit Sparklyr umzugehen?

8

Im folgenden Beispiel habe ich eine Parkettdatei geladen, die einen verschachtelten Datensatz von Kartenobjekten im Feld meta enthält. sparklyr scheint sich gut damit zu beschäftigen. % Co_de% übersetzt jedoch nicht in SQL (oder HQL - verständlicherweise - wie tidyr::unnest ) und ist daher nicht verwendbar. Gibt es eine Möglichkeit, Daten auf andere Weise zu vereinheitlichen?

%Vor%

Es gibt auch ein Problem, wenn die Daten gesammelt werden. Zum Beispiel,

%Vor%

Im obigen Beispiel enthält die LATERAL VIEW explode() -Datei weiterhin meta -Elemente anstelle von Listen, data.frames oder sogar JSON-Strings (so würde Hive solche Daten zurückgeben). Dies erzeugt eine Situation, in der spark_jobj nicht einmal an den gesammelten Daten arbeitet.

Gibt es eine Möglichkeit, tidyr besser mit sparklyr zu arbeiten, die ich vermisse? Wenn nicht, ist dies für zukünftige tidyr Entwicklung geplant?

    
Matt Pollock 01.09.2016, 16:52
quelle

3 Antworten

1

Ich habe endlich meine Antwort darauf. Siehe Ссылка (Quelle: Ссылка )

%Vor%

Dies verhält sich für Spark-Datenrahmen ähnlich wie tidyr::unnest für lokale Datenrahmen verhält. Geschachtelte Auswahl- und Explodierungsoperationen werden ebenfalls implementiert.

    
Matt Pollock 29.08.2017, 00:45
quelle
1

Dies ist nicht genau eine richtige Lösung, jedoch besteht eine Umgehungslösung darin, Hive zu verwenden, um eine Tabelle oder Ansicht zu erzeugen (z. B. create view db_name.table_name as select ... ). das behandelt den explodierenden Vorgang. Dies dient dazu, flache Daten für sparklyr zu bearbeiten. Wenn sc eine Spark-Verbindung über sparklyr ist, kann% ce_de% unter der Annahme verwendet werden, dass Hive konfiguriert ist, und die Ansicht wird dann angezeigt, wenn Tabellen mit DBI::dbGetQuery(sc, "USE db_name") aufgelistet werden. Sobald Sie src_tbls(sc) ausführen, sollte es von dort aus reibungsloser segeln.

Da dies keine dat <- tbl(sc, "table_name") -Lösung ist (sondern eher eine Hive-Lösung), werde ich diese Antwort nicht akzeptieren.

    
Matt Pollock 03.09.2016 09:56
quelle
1

Hier ist eine weitere Option, die nicht von Hive abhängt (zumindest so direkt, LATERAL VIEW explode() ist eine Hive-Sache).

%Vor%

Ich werde diese Antwort auch nicht akzeptieren, da ich immer noch etwas wie:

sehen möchte %Vor%

, aber das würde Unterstützung für verschachtelte Select-Anweisungen erfordern. Vielleicht würde etwas wie die tidyr::unnest -Syntax den Trick machen:

%Vor%     
Matt Pollock 27.10.2016 21:10
quelle

Tags und Links