为了账号安全,请及时绑定邮箱和手机立即绑定

SPARK:了解合并方法?

SPARK:了解合并方法?

动漫人物 2023-03-17 15:17:03
我正在尝试了解 spark 中的 coalesce 方法。我有一个JavaRDD<String>(由 16310 个字符串组成),我想将它保存在 233 个文件中。(一个文件有 70 个字符串)首先,我尝试了trainDataFeatures.repartition(233).saveAsTextFile(outputPathTrainFeatures);这很好用,但我不想洗牌我的数据。所以我尝试了:trainDataFeatures.coalesce(233, false).saveAsTextFile(outputPathTrainFeatures);在这里我只有 4 个输出文件。没有洗牌,但只有 4 个!!!这真的很烦人。也许有人可以帮我解决这个问题。
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

我认为这就是重点,也是coalesce和之间最大的区别repartition

Repartition 会对数据进行全面洗牌,以便能够创建这些额外的分区。Coalesce 在现有分区之间移动数据并避免创建新分区并避免完整的数据混洗。

基本上,coalesce 不会为您创建额外的分区这一事实是 coalesce 的一个特性。

与重新分区相同——由于完整的数据洗牌,它能够以高效的方式工作。您可能不关心性能,只想增加分区数量而不进行洗牌 - 好吧,之前有人有过这个想法,这个问题在这里仍然悬而未决。


查看完整回答
反对 回复 2023-03-17
  • 1 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信