开发者社区> 问答> 正文

Spark以独占方式按键分区

我想按密钥对RDD进行分区,并且每个parition只包含一个密钥的值。例如,如果我有100个不同的密钥和I值repartition(102),则RDD应该有2个空分区和100个分区,每个分区包含一个密钥值。

我尝试过,groupByKey(k).repartition(102)但这并不能保证每个分区中密钥的排他性,因为我看到一些分区包含更多的单个值和2个以上的空值。

标准API中有没有办法做到这一点?

展开
收起
社区小助手 2018-12-12 11:36:14 1331 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    对于RDD,您是否尝试过使用partitionBy按键对RDD进行分区,就像在这个问题中一样?如果需要,您可以将分区数指定为要删除空分区的键数。

    在数据集API,你可以使用重新分配与Column作为参数的值在该列进行分区(但是注意,这里使用的值spark.sql.shuffle.partitions作为分区的数量,所以你会得到更多的空分区)。

    2019-07-17 23:20:05
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载