combineByKey之Spark中一个比较核心高级函数

import org.apache.spark.{HashPartitioner, Partitioner, SparkConf, SparkContext}


/**
  * Created by Administrator on 2018/7/3.
  */
object test {


   def main(args: Array[String]): Unit = {
      val conf = new SparkConf().setAppName("test").setMaster("local[12]")
      val sc = new SparkContext(conf)
      val book=Array(("大冰","阿弥陀佛么么哒"),("大冰","我不"),("柴静","看见"),("知乎","知乎"),
("胡赛尼","追风筝的人"),("大冰","你坏"),("钱钟书","围城"),("钱钟书","猫"),("大冰","好吗好的"))
      sc.makeRDD(book).combineByKey(
         v => (1,v),
         (acc:(Int,String),v:String) => (acc._1 + 1,v),
         (acc:(Int,String),acc1:(Int,String)) => (acc._1+acc1._1 , acc1._2),
         new HashPartitioner(1),
      false
      ).map {
         case (k, (k1, v)) => Array(k, k1, v).mkString("\t")
      }.foreach(println)
      sc.stop()

   }




}

理解:https://blog.csdn.net/Gpwner/article/details/73349589

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值