Selección aleatoria de partes de RDDs en Scala

Fracción de RDD – sample()scala_logo

Nos devuelve un RRD que representa una fracción de los datos

val rdd1= sc.parallelize(1 to 10, 4)
val rdd2 = rdd1.sample(false, 0.25, 1234)
rdd2.collect()
res: Array[Int] = Array(4, 7, 8)

 

Selección aleatoria de elementos por clave –  sampleByKey()

Nos devuelve un RDD que representa usa selección aleatoria con las proporciones indicadas cara cada clave

val rdd = sc.parallelize(List( (1,"coche"), (1, "moto"),(1, "tren"), (1, "avion"), (2, "casa"), (2, "chalet"), (2, "piso")))
val proportions = List((1, 0.2), (2, 0.7)).toMap
rdd.sampleByKey(false, proportions,1234).collect
res: Array[(Int, String)] = Array((1,avion), (2,casa), (2,chalet))