Spark API 之 cogroup 使用

tjava面试题网站:www.javaoffers.com

uple1Rdd.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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值