首页 > 其他 > 详细

Spark学习笔记——键值对操作

时间:2017-04-07 20:02:37      阅读:284      评论:0      收藏:0      [点我收藏+]

键值对 RDD是 Spark 中许多操作所需要的常见数据类型

键值对 RDD 通常用来进行聚合计算。我们一般要先通过一些初始 ETL(抽取、转化、装载)操作来将数据转化为键值对形式。

Spark 为包含键值对类型的 RDD 提供了一些专有的操作。

 

1.创建Pair RDD

  val pairs = input.map(x => (x+1, x))
    for (pair <- pairs){
      println(pair)
    }

2.Pair RDD的转化操作

Pair RDD 可以使用所有标准 RDD 上的可用的转化操作。

技术分享

技术分享

技术分享

Pair RDD也支持RDD所支持的函数

pairs.filter{case (key, value) => value.length < 20}

 

3.聚合操作

类似fold() 、 combine() 、 reduce() 等行动操作,这些操作返回 RDD,因此它们是转化操作而不是行动操作。

reduceByKey()函数,接收一个函数,并使用这个函数对值进行合并

val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)  #切分成单词,转换成键值对并计数

foldByKey()函数,也是接收一个函数,并使用这个函数对值进行合并,提供初始值

rdd.mapValues(x => (x, 1)).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2))

 技术分享

Spark学习笔记——键值对操作

原文:http://www.cnblogs.com/tonglin0325/p/6679575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!