【发布时间】:2015-08-12 16:52:05
【问题描述】:
RDD 的 Partitions 和 RDD 的内容在 shuffle 操作之前映射到的 Buckets 之间是否存在关系?
其次,所有具有相同键的键值对是否会被洗牌到同一个桶中,还是键值对到桶中的分布是随机的?指定分区器(哈希/范围)是否会影响此分布?
【问题讨论】:
-
如果你看一下
HashShuffleWriter的实现,你会发现几乎没有区别。bucketId是使用partitioner.getPartition上的key确定的。 -
@zero323 那么,按照这个逻辑,传递给
HashShuffleWriter的write()方法的records: Iterator[Product2[K, V]]包含存储桶的实际内容? -
这是我的理解。查看ShuffleWriterGroup 的文档字符串。
标签: apache-spark apache-spark-sql