Spark RDD entspricht der Scala Collections Partition

9

Dies ist ein kleines Problem mit einem meiner Funkenjobs, der scheinbar keine Probleme verursacht - doch ärgert es mich jedes Mal, wenn ich es sehe und es versäumt wird, eine bessere Lösung zu finden.

Sagen Sie, ich habe eine Scala-Sammlung wie folgt:

%Vor%

Ich kann diese Liste in Erfolge und Fehler mit Partition partitionieren:

%Vor%

Was ist nett. Die Implementierung der Partition durchläuft die Quellensammlung nur einmal, um die zwei neuen Sammlungen zu erstellen. Mit Spark ist das beste Gegenstück, das ich entwickelt habe, das folgende:

%Vor%

Abgesehen von dem Unterschied beim Entpacken erfordert das Try (was in Ordnung ist) auch, dass die Daten zweimal durchlaufen werden. Was nervt.

Gibt es eine bessere Spark-Alternative, die RDD ohne mehrfache Durchquerungen teilen kann? d. h. mit einer Signatur wie dieser, wobei die Partition das Verhalten der Scala-Sammlungs-Partition anstelle der RDD-Partition aufweist:

%Vor%

Als Referenz habe ich vorher etwas wie das Folgende benutzt, um das zu lösen. Die potenziell fehlerhafte Operation ist das Deinserialisieren einiger Daten aus einem Binärformat, und die Fehler sind so interessant geworden, dass sie als RDD verarbeitet und gespeichert werden müssen und nicht als protokollierte Daten.

%Vor%     
jdeastwood 15.03.2015, 21:22
quelle

1 Antwort

0

Es könnte andere Lösungen geben, aber hier gehts:

Setup:

%Vor%

Ausführung:

%Vor%

Lass es mich wissen, wenn du eine Erklärung brauchst

    
Justin Pihony 15.03.2015, 23:16
quelle