需求 :
- 假定超大数据量的商品,需要根据其价格在其类目或全类目进行排序求前1000,但是内存不足
需求拆解 :
- 先算出特定类目的前1000,再进行全类目的分组比较排序
备注 :
- 不要使用Spark自带的GroupByKey,要自己实现CombineByKey
- 实现CombinedByKey的时候需要在每次MergeValue 和 MergeCombiner的时候做好排序,限定前1000(即限定Combiner的大小)
- 这样就可以避免内存不足的问题,同时可以先得到单独类目的前1000
- 最后再进行全类目多条件组合的分组比较排序即可











网友评论