它为大数据运行了keyBy
,map
和flatMap
转换。
让我们看看它:
以下是我的代码示例:
val data1 = sc.parallelize(Seq(("aa", 1), ("ba", 2), ("bc", 2), ("b", 3), ("c", 1)))
val data2 = sc.parallelize(Seq(("a", 3), ("b", 5)))
val result: RDD[(String, Int)] = data1
.keyBy(_._1.substring(0, 1)) // key by first character
.cogroup(data2)
.filter { case (_, (_, data2Values)) => data2Values.nonEmpty }
.flatMap { case (_, (data1Values, _)) => data1Values }
这在任务中并不均衡。为什么呢?
所以我尝试使用repartition
,但它没有用。
问题