Operazioni RDD in PySpark

Fondamenti di Big Data con PySpark

Upendra Devisetty

Science Analyst, CyVerse

Panoramica delle operazioni PySpark

  • Le trasformazioni creano nuovi RDD
  • Le azioni eseguono calcoli sugli RDD
Fondamenti di Big Data con PySpark

Trasformazioni RDD

  • Le trasformazioni seguono la valutazione lazy

  • Trasformazioni RDD di base

    • map(), filter(), flatMap() e union()
Fondamenti di Big Data con PySpark

Trasformazione map()

  • La trasformazione map() applica una funzione a tutti gli elementi dell'RDD

map

RDD = sc.parallelize([1,2,3,4])
RDD_map = RDD.map(lambda x: x * x)
Fondamenti di Big Data con PySpark

Trasformazione filter()

  • La trasformazione filter restituisce un nuovo RDD con solo gli elementi che soddisfano la condizione

filter

RDD = sc.parallelize([1,2,3,4])
RDD_filter = RDD.filter(lambda x: x > 2)
Fondamenti di Big Data con PySpark

Trasformazione flatMap()

  • La trasformazione flatMap() restituisce più valori per ogni elemento dell'RDD originale

RDD = sc.parallelize(["hello world", "how are you"])
RDD_flatmap = RDD.flatMap(lambda x: x.split(" "))
Fondamenti di Big Data con PySpark

Trasformazione union()

inputRDD = sc.textFile("logs.txt")
errorRDD = inputRDD.filter(lambda x: "error" in x.split())
warningsRDD = inputRDD.filter(lambda x: "warnings" in x.split())
combinedRDD = errorRDD.union(warningsRDD)
Fondamenti di Big Data con PySpark

Azioni RDD

  • Operazioni che restituiscono un valore dopo aver eseguito un calcolo sull'RDD

  • Azioni RDD di base

    • collect()

    • take(N)

    • first()

    • count()

Fondamenti di Big Data con PySpark

Azioni collect() e take()

  • collect() restituisce tutti gli elementi del dataset come array

  • take(N) restituisce un array con i primi N elementi del dataset

RDD_map.collect()
[1, 4, 9, 16]
RDD_map.take(2)
[1, 4]
Fondamenti di Big Data con PySpark

Azioni first() e count()

  • first() stampa il primo elemento dell'RDD
RDD_map.first()
[1]
  • count() restituisce il numero di elementi nell'RDD
RDD_flatmap.count()
5
Fondamenti di Big Data con PySpark

Esercitiamoci con le operazioni RDD

Fondamenti di Big Data con PySpark

Preparing Video For Download...