我想在计算时增加很多任务,但是在写入表时合并为较小的一组分区。
下面给出了一个简单的演示示例,其中在执行过程中不支持重新分区。
我的预期输出是,映射操作发生在100个分区中,最后收集仅发生在10个分区中。
Spark似乎通过忽略分区来优化执行。有人可以解释如何实现我的预期行为会很有帮助。
sc.parallelize(range(1,1000)).repartition(100).map(lambda x: x*x).coalesce(10).collect()
答案 0 :(得分:0)
使用分区代替合并,有助于实现预期的行为。
editText.onTextChanged { text -> /* do something */ }
这有助于解决我的问题。但是,仍然希望对此行为做出解释。
答案 1 :(得分:0)
“返回一个新的数据集,该数据集具有精确的numPartitions分区,当(多个)请求的分区更少时。如果请求的分区数量较大,它将保留在当前的分区数量上。”