Definición


Es una transformación que nos permite hacer un reshuffle de los datos en el RDD de forma aleatoria para crear más o menos particiones y balancearlas.

rdd = sc.parallelize(range(1, 11), 4)
rdd.glom().collect()
# Devuelve [[1, 2], [3, 4, 5], [6, 7], [8, 9, 10]]
 
rdd2 = rdd.repartition(2)
rdd.glom().collect()
# Devuelve [[1, 2, 6, 7, 8, 9, 10], [3, 4, 5]]

Spark no hace un shaffle de registros individuales sino de a bloques con un mínimo (no es un problema cuando se manejan grandes cantidades de datos)