Grundlagen von Big Data mit PySpark
Upendra Devisetty
Science Analyst, CyVerse
Die Action reduce(func) aggregiert Elemente eines normalen RDD
Die Funktion muss kommutativ (Reihenfolge ändert das Ergebnis nicht) und assoziativ sein
Beispiel für die reduce()-Action in PySpark
x = [1,3,4,6]
RDD = sc.parallelize(x)
RDD.reduce(lambda x, y : x + y)
14
saveAsTextFile() speichert ein RDD als Textdatei in einem Verzeichnis, jede Partition als eigene DateiRDD.saveAsTextFile("tempFile")
coalesce() kannst du ein RDD als eine einzelne Textdatei speichernRDD.coalesce(1).saveAsTextFile("tempFile")
RDD-Actions für PySpark-Pair-RDDs
Pair-RDD-Actions nutzen die Key-Value-Daten
Beispiele für Pair-RDD-Actions:
countByKey()
collectAsMap()
countByKey() nur für Typ (K, V) verfügbar
countByKey() zählt die Elemente pro Key
Beispiel für countByKey() auf einer einfachen Liste
rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)])
for kee, val in rdd.countByKey().items():
print(kee, val)
('a', 2)
('b', 1)
collectAsMap() gibt die Key-Value-Paare im RDD als Dictionary zurück
Beispiel für collectAsMap() auf einem einfachen Tupel
sc.parallelize([(1, 2), (3, 4)]).collectAsMap()
{1: 2, 3: 4}
Grundlagen von Big Data mit PySpark