En Apache Spark, el procesamiento de datos se divide en dos tipos principales de operaciones: transformaciones y acciones. Comprender estas operaciones es clave para aprovechar al máximo el potencial de Spark.
map, filter, flatMap.collect, count, saveAsTextFile.mapAplica una función a cada elemento del RDD o DataFrame y devuelve un nuevo conjunto transformado.
rdd = sc.parallelize([1, 2, 3, 4])
mapped_rdd = rdd.map(lambda x: x * 2)
print(mapped_rdd.collect()) # [2, 4, 6, 8]
filterFiltra elementos que cumplen una condición específica.
rdd = sc.parallelize([1, 2, 3, 4])
filtered_rdd = rdd.filter(lambda x: x % 2 == 0)
print(filtered_rdd.collect()) # [2, 4]
flatMapGenera múltiples elementos para cada entrada.
rdd = sc.parallelize(["hola mundo", "aprendiendo spark"])
flat_mapped_rdd = rdd.flatMap(lambda x: x.split(" "))
print(flat_mapped_rdd.collect()) # ["hola", "mundo", "aprendiendo", "spark"]
groupByKeyAgrupa los elementos por clave.
rdd = sc.parallelize([("a", 1), ("b", 2), ("a", 3)])
grouped_rdd = rdd.groupByKey()
print([(k, list(v)) for k, v in grouped_rdd.collect()]) # [("a", [1, 3]), ("b", [2])]
reduceByKey