Akciók
Megszámlálás - count
Megadja az adott RDD-ben lévő elemeik számát.
Redukció - reduce
A redukció egy kétparaméteres (accumulator
, current
) függvény vár, aminek alkalmazásával feldolgozza a teljes RDD-t. Ehhez minden elem esetén
meghívja a megadott függvényt, melynek accumulator
paramétereként átadja a függvény előző hívásának eredményét
(kezdetben az érték az RDD első eleme) current
paraméterként pedig az aktuális elemet.
Hasonlókért lásd: foldl (Haskell), reduce (JavaScript), Stream.reduce (Java)
numbers = sc.parallelize(range(1000))
numbers.reduce(lambda accumulator, current: accumulator + current) # összegzés megvalósítása
numbers.reduce(lambda maximum, current: max(accumulator, current)) # maximumkiválasztás
Nagyon fontos, hogy az elosztott végrehajtás miatt kommutatívnak és asszociatívnak kell lennie, illetve úgy kell megírni , hogy később amikor a különböző számítógépeken befejeződik a redukció, az alredukciók eredménye is ugyan ezzel a függvénnyel lesz redukálva.
Ezért például a következő kód rosszul működik:
numbers.reduce(lambda count, current: count + 1 if current % 2 == 0 else count)