我拥有的数据按数据进行静态分区,然后按国家/地区进行动态分区。因此,对于每个日期,我最多可以有180个国家/地区分区。看起来像这样:
/20180101/cntry=us/ => 100kb
/cntry=ca/ => 500kb
/cntry=uk/ => 1.5mb
对于每个日期,数据都很小(大约20-100mb),并且在国家/地区分区之间进行划分。我在想这种情况,哪种方法更好?分区还是合并?由于数据很小,合并会更好吗?根据数据的大小,何时合并或重新分区是一个更好的选择,我感到非常困惑。
答案 0 :(得分:2)
由于数据分布不均,我在Coalesce方面的经历非常糟糕。 Coalesce和Repartition的最大区别在于,Repartitions调用了完整的shuffle来创建平衡的NEW分区,而Coalesce使用已经存在但可以创建不平衡的分区的分区,这对于下游数据的使用者而言可能是非常糟糕的。 / p>
对于您而言,由于您的数据已按国家/地区进行分区,因此合并不会产生很大的影响。而且数据还很小,可以。但是从发展的角度来看,我个人使用分区。
更多详细信息,请参见this博客文章。