一起学Spark(5) -- 基本rdd 常见的转换和行动操作
2018-01-26 17:57
288 查看
1.转换操作 1.1 一般的元素操作#map 和 flatmap
#map接受一个函数,把这个函数用于每个rdd中的元素
nums = sc.parallelize([1,2,3,4])
squared = nums.map(lambda x:x*x) #[1,4,9,16]
#flatmap也是接受一个函数,把这个函数用于每个rdd中的元素 并扁平化
lines = sc.parallelize(["hello word","hi"])
words = lines.flatmap(lambda x:x.split()) # words = ["hello","word","hi"]
words = lines.map(lambda x:x.split()) # words = [["hello","word"],["hi"]],注意与flatmap 的区别1.2 伪集合操作
rdd.collect() #返回全部元素
rdd.count() #统计元素个数
rdd.top(n) #倒序返回 n 个元素
rdd.take(n)#顺序返回 n 个元素
rdd.countByValue() #rdd各个元素统计个数
2.2 聚合操作(聚合操作也是行动操作,一般容易陷入误区)
#map接受一个函数,把这个函数用于每个rdd中的元素
nums = sc.parallelize([1,2,3,4])
squared = nums.map(lambda x:x*x) #[1,4,9,16]
#flatmap也是接受一个函数,把这个函数用于每个rdd中的元素 并扁平化
lines = sc.parallelize(["hello word","hi"])
words = lines.flatmap(lambda x:x.split()) # words = ["hello","word","hi"]
words = lines.map(lambda x:x.split()) # words = [["hello","word"],["hi"]],注意与flatmap 的区别1.2 伪集合操作
#RDD 本身不是严格意义上的集合,但也支持许多数学上的集合操作 rdd.distinct() #转化操作去重 rdd.union(other) #返回一个包含两个rdd中所有元素的rdd rdd.intersection(other) #只返回两个集合的交集 rdd.subtract(other) #返回只存在第一个rdd中而不存在第二个rdd中的元素 rdd.cartesian(other) #返回两个rdd的笛卡尔积2.行动操作2.1 一般的行动操作#常用的一般化行动操作
rdd.collect() #返回全部元素
rdd.count() #统计元素个数
rdd.top(n) #倒序返回 n 个元素
rdd.take(n)#顺序返回 n 个元素
rdd.countByValue() #rdd各个元素统计个数
2.2 聚合操作(聚合操作也是行动操作,一般容易陷入误区)
#aggregate 和 reduce 聚合函数 #reduce:接受一个函数作为参数,这个函数要操作两个相同的元素类型的rdd数据并返回一个同样类型的新元素 #返回的只能是一个数字 rdd = sc.parallelize([1,2,3,4]) sum = rdd.reduce(lambda x,y:x+y) #返回rdd元素的累加值 10 #aggregate:接受三个函数作为参数,第一个提供初始值,第二个和三个是聚合,与reduce不同的是,把我们从返回值类型必须 #与所操作的rdd类型相同的限制中解放出来,比如这里可以聚合成元组类型,不一定是一个数字 sum = rdd.aggregate((0,0),(lambda x,y:(x[0]+y,x[1]+1)), \ (lambda x,y:(x[0]+y[0],x[1]+y[1]))) #sum = (10,4)
相关文章推荐
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- 一起学Spark(5) -- 基本rdd 常见的转换和行动操作
- Spark算子:RDD基本转换操作(1)–map、flagMap、distinct
- Spark算子:RDD基本转换操作(3)–randomSplit、glom