spark flatmap

之前在某个spark技术交流群里面,曾经有人问过我一个问题,那就是怎么将RDD[(String,ArrayBuffer[String])]转换为RDD[(String,String)]类型,我当时就告诉完了怎么转换的方法即用flatmap实现,但是,现在我遇到了同样的问题,怎么都想不起来当时是怎么写的了,也找不到那段代码了,我就用了一个比较守旧的方法实现的res是RDD[(String,ArrayBuffer[String])]类型的

res.flatMap( x =>{
      val sub = ArrayBuffer.empty[(String,String)]
      x._2.foreach( e =>{
        sub.+=( ( x._1,e ) )
      })
      sub.iterator
    })

用这个方法可以转换,但是这貌似很臃肿,简单点的方法就是:

res.flatMap{x =>  x._2.map( e =>( x._1,e ) 

此方法也可以实现。记录下来,以免自己忘记。现自己成立了一个技术交流主要是关于mongodb的群号:584106609,有想互相分享学习心得的朋友可以加一下该群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值