Spark API 之 cogroup 使用

tuple1Rdd.cogroup(tuple2Rdd) : 该方法针对的是元组之间的操作(RDD里面的元素是tuple对象,这里我简述为元组),否者无效,该元组是kv 对出现,cogroup方法的操作逻辑是:如果元组的k相同,则收集他们对应的v, 返回的类型为Array[(K, (Iterable[V], Iterable[V],*))] 一个数组类型,数组中的每个元素为元组Tuple,元组中的元素为(K,T(元组)),在T中存放着多个迭代器,每个迭代器(每个分区只等让一个迭代器对应在T中)对应一个分区并封装配到对应的v值,注意:在同一个partition中匹配到了多个v值会出现在对应的唯一迭代器中

案例:

  


结果:



案例2:



结果:



 道理很简单:其实就是多个partition在进行cogroup时,会产生一个Array[K,T] 这样的一个对象,K为每partition中每个个元组的K,T中有多个Iterable, 每个Iterable中封装是    该Iterable对应的唯一partition中的    相同K的元组对应的V。每一个Iterable对已唯一的Partition

发布了99 篇原创文章 · 获赞 22 · 访问量 8万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览