Spark笔记:RDD基本操作(上)
原文链接:http://www.cnblogs.com/sharpxiajun/p/5506822.html
本文主要是讲解spark里RDD的基础操作。RDD是spark特有的数据模型,谈到RDD就会提到什么弹性分布式数据集,什么有向无环图,本文暂时不去展开这些高深概念,在阅读本文时候,大家可以就把RDD当作一个数组,这样的理解对我们学习RDD的API是非常有帮助的。本文所有示例代码都是使用scala语言编写的。
Spark里的计算都是操作RDD进行,那么学习RDD的第一个问题就是如何构建RDD,构建RDD从数据来源角度分为两类:第一类是从内存里直接读取数据,第二类就是从文件系统里读取,当然这里的文件系统种类很多常见的就是HDFS以及本地文件系统了。
第一类方式从内存里构造RDD,使用的方法:makeRDD和parallelize方法,如下代码所示:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/*
使用makeRDD创建RDD */
/*
List */
val rdd01 = sc.makeRDD(List(1,2,3,4,5,6))
val r01 = rdd01.map
{ x =>
x * x }
println(r01.collect().mkString(","))
/*
Array */
val rdd02 = sc.makeRDD(Array(1,2,3,4,5,6))
val r02 = rdd02.filter
{ x =>
x < 5}
println(r02.collect().mkString(","))
val rdd03 = sc.parallelize(List(1,2,3,4,5,6), 1)
val r03 = rdd03.map
{ x =>
x + 1 }
println(r03.collect().mkString(","))
/*
Array */
val rdd04 = sc.parallelize(List(
|
