RDD
s sono immutabili e le trasformazioni su RDD creano nuovi RDD. Pertanto, non è necessario creare copie di un RDD per applicare diverse operazioni.
È possibile salvare l'RDD di base nella memoria secondaria e applicare ulteriormente le operazioni su di esso.
Questo è perfettamente OK:
val rdd = ???
val base = rdd.byKey(...)
base.saveToCassandra(ks,table)
val processed = byKey.map(...).reduceByKey(...)
processed.saveToCassandra(ks,processedTable)
val analyzed = base.map(...).join(suspectsRDD).reduceByKey(...)
analyzed.saveAsTextFile("./path/to/save")