码迷,mamicode.com
首页 > 其他好文 > 详细

Spark RDD操作记录(总结)

时间:2017-11-19 02:07:19      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:读取   交集   value   count   std   nio   map   sort   排序   

创建List
intRDD = sc.parallelize(List(1,2,3,4,5))

过滤包含
stringRDD.filter(_.contains("a")).collect()

去重
stringRDD.distinct.collect()

RDD拆分
val sRDD = intRDD.randomSplit(Array(0.4,0.6))

显示拆分后的RDD
sRDD(0).collect()

奇偶区分
intRDD.groupBy(x => {if (x % 2 == 0) "even" else "old"}).collect()

并集运算
intRDD1.union(intRDD2).union(intRDD3).collect()

++ 运算
(intRDD1 ++ intRDD2 ++ intRDD3).collect()

交集运算
intRDD1.intersection(intRDD2).collect()

差集运算
intRDD1.subtract(intRDD2).collect()

笛卡尔乘积
intRDD1.cartesian(intRDD2).collect()

取第一条数据
intRDD.first

取前两条数据
intRDD.take(2)

从小到大读前三条
intRDD.takeOrdered(3)

从大到小读前三条
intRDD.takeOrdered(3)(Ordering[Int].reverse)

统计 intRDD.stats
最小 min
最大 max
stdev 标准偏差
count 计数
sum 求和
mean 平均

创建范例
val kvRDD1 = sc.parallelize(List((3,4),(3,6),(5,6),(1,2)))

列出所有key值
kvRDD1.keys.collect()

列出所有的value
kvRDD1.values.collect()
 
列出所有key小于5
kvRDD1.filter{case (key,value) => key < 5}.collect()

value值平方运算
kvRDD1.mapValues(x => x * x ).collect()

按照key小到大排序
kvRDD1.sortByKey(true).collect()  //可以不传参数

reduceByKey
kvRDD1.reduceByKey((x,y) => x+y).collect()  kvRDD1.reduceByKey(_+_).collect()

join运算
kvRDD1.join(kvRDD2).collect()

读取第一条数据的第一个元素
kvRDD1.first._1

计算每一个key值的条数
kvRDD1.countByKey()

输入key来查找value值
kvRDD1.lookup(3)

Spark RDD操作记录(总结)

标签:读取   交集   value   count   std   nio   map   sort   排序   

原文地址:http://www.cnblogs.com/flymercurial/p/7858332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!