Spark学习过程笔记

1:flatMap():这个方法类似与map,相当于使用两次map,例如:flatMap(line=>line.split(" "))其实就相当于使用了两次map(line=>line.split(" ")),在词频统计中,可以直接文本分解成单词,而不是单词的列表.

2:mapPartitions():也是类似map的一个方法,不过map是对rdd中的每一个元素进行一个链接,而mapPartition是对rdd中的每一个分区进行一个链接,这样看来,mapPartition比map的效率高的多.

3:reduceByKey(func):这是一个归约的方法,它会将rdd中的键值对中的key相同的键值对中的值进行func的操作,

例如:val kvs = sc.parallelize(List(("A",1),("B",2),("A",3")))

        kvs.reduceByKey((x,y)=>(x+y))

        得到结果为("A",4)("B",2)

4:groupBy(func):这个方法将rdd中的值进行操作,将操作数作为键,然后将筛选出的值作为对应键的值,其实也是一个形成键值对的方法,

5:groupByKey:没有参数,直接调用,即对键相同对的聚合

6:mapvalues(func):对rdd中的每一对键值对的键不变,对值进行操作;

例如:val a = sc.parallelize(List("a", "b", "c"))

      val b = a.map(x => (x.length, x))

      b.mapValues(_ + "x").collect


返回的是(1,"ax"),(1,"bx"),(1,"cx")

7:zipWithIndex方法,这个方法将RDD中的每一个元素组成一个键值对(x,y),x是这个元素,y是这个元素在RDD中的序号,从0开始



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值