Fondamenti di Big Data con PySpark
Upendra Devisetty
Science Analyst, CyVerse
L'azione reduce(func) si usa per aggregare gli elementi di un RDD normale
La funzione deve essere commutativa (cambiare l'ordine degli operandi non cambia il risultato) e associativa
Un esempio di azione reduce() in PySpark
x = [1,3,4,6]
RDD = sc.parallelize(x)
RDD.reduce(lambda x, y : x + y)
14
saveAsTextFile() salva un RDD in un file di testo dentro una directory, con ogni partizione come file separatoRDD.saveAsTextFile("tempFile")
coalesce() può essere usato per salvare l'RDD in un singolo file di testoRDD.coalesce(1).saveAsTextFile("tempFile")
Azioni RDD disponibili per i pair RDD in PySpark
Le azioni sui pair RDD sfruttano i dati chiave-valore
Alcuni esempi di azioni per pair RDD
countByKey()
collectAsMap()
countByKey() è disponibile solo per il tipo (K, V)
L'azione countByKey() conta il numero di elementi per ciascuna chiave
Esempio di countByKey() su una semplice lista
rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)])
for kee, val in rdd.countByKey().items():
print(kee, val)
('a', 2)
('b', 1)
collectAsMap() restituisce le coppie chiave-valore dell'RDD come dizionario
Esempio di collectAsMap() su una semplice tupla
sc.parallelize([(1, 2), (3, 4)]).collectAsMap()
{1: 2, 3: 4}
Fondamenti di Big Data con PySpark