spark groupby 之后相同字段 的数据 是处于同一个分区吗?
假定一个RDD 存在十个分区, 当对这个RDD进行groupby之后得到一个新的RDD,相同字段的数据是否 处于同一个分区?
我测试结果查看是相同分组字段的数据被划分到了相同分区, 并且同一个分区可以存在其他字段的数据。
延伸问题:
(1)如果说相同字段的数据处于同一分区那么 groupBy之后得到的groupByRDD.mapValues 获取到这个字段对应的所有的values数据,当数据量大的时候
groupByRdd.mapValues(_.tolist().sortby )就会产生内存溢出。
这个理解对吗
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
groupbykey才会处于同一分区吧。
理论上mapValues如果过大确实应该溢出,我但测试了一组超大的数据,没有溢出。
根据文档和日志猜测,当后续有行动操作,触发mapValues操作,mapvalues的rdd会序列化到磁盘上,所以估计不是一起读取到内存中,而是通过磁盘交换,读一点写一点。