Frage

Ich verwende Funken 1.0.1, um eine große Menge an Daten zu verarbeiten.Jede Zeile enthält eine ID-Nummer, einige mit doppelten IDs.Ich möchte alle Zeilen mit derselben ID-Nummer an derselben Stelle speichern, aber ich habe Probleme, es effizient zu machen.Ich erstelle eine RDD [(String, String)] von (ID-Nummer, Datenzeilen) Paare:

generasacodicetagpre.

Eine Art und Weise, die funktioniert, ist jedoch nicht aufführend, die ID-Nummern zu sammeln, die RDD für jede ID zu filtern und die RDD von Werten mit derselben ID als Textdatei zu speichern.

generasacodicetagpre.

Ich habe auch einen Gruppykey oder ReductionBykey ausprobiert, sodass jedes Tupel in der RDD eine eindeutige ID-Nummer als Schlüssel und eine Zeichenfolge kombinierter Datenzeilen enthält, die durch neue Zeilen für diese ID-Nummer getrennt sind.Ich möchte die RDD nur einmal durchführen, um die Daten zu verwenden, um die Daten zu speichern, aber es kann die Werte nicht als RDD angeben.

generasacodicetagpre.

Im Wesentlichen möchte ich mit einer ID-Nummer ein RDD in mehrere RDDs aufteilen und die Werte für diese ID-Nummer in ihren eigenen Speicherort speichern.

Andere Tipps

Sie können SaveRextFile direkt auf gruppierter RDD anrufen, hier speichert er die Daten basierend auf Partitionen, ich meine, wenn Sie 4 Unkenntnisse haben, und Sie haben die Anzahl der Partitionen von GroupEdRDD als 4 angegeben, dann speichert Funken Sie jede Partitionsdaten in einemDatei (also, mit der Sie nur eine FilePer-ID haben können, können Sie sogar die Daten als Iterables von Jeiner im Dateisystem sehen.

Dadurch speichert die Daten pro Benutzer-ID

generasacodicetagpre.

Wenn Sie die Daten erneut abrufen müssen, basierend auf der Benutzer-ID können Sie etwas wie

tun generasacodicetagpre.

Beachten Sie, dass es in diesem Fall keinen besonderen Grund gibt, in der Datei zu speichern.gemacht worden.

Eine letzte Sache, generell, ist er schneller als ein Filteransatz des Zugriffs auf IDs, aber wenn Sie bereit sind, eine Pull-Anforderung vom Funken auszugehen, können Sie Kasse Diese Antwort für einen schnelleren Ansatz

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top