我有一个DStream[(Int,Int)]
像这样:
(0,0),(1,0),(2,0),(3,0),(4,0),(5,0)等
我想采样一些值并使流像这样:
(0,1),(1,1),(2,1),(3,0),(4,0),(5,0)等
我唯一想到的方法是:
val ex = input.transform(rdd=> {
val tmp = rdd.filter(_._2==0).take(fixedSize)
val arr = tmp.map(p=> (p._1,1))
val newRDD1 = ssc.sparkContext.parallelize(arr,2)
val newRDD2 = ssc.sparkContext.parallelize(tmp,2)
val ret = rdd.union(newRDD1).subtract(newRDD2)
ret
})
它工作正常,但我想知道是否还有一种更精致的方法来获得相同的结果。