Spark07 RDD 算子总结

作者: 山高月更阔 | 来源:发表于2020-05-24 14:13 被阅读0次

转换算子

对结果集{1,2,3,3}进行基本RDD转换操作

函数名 目的 实例 结果
map 函数应用每个元素并返回新的RDD rdd.map(lambda x:x+1) {2,3,4,4}
flatMap 函数应用每个元素,将返回迭代器里所有元素构成新的RDD rdd.flatMap(lambda x:[i for i in range(x)]) {0, 0, 1, 0, 1, 2, 0, 1, 2}
filter 过滤 rdd.filter(lambda x : x != 1) {2,3,3}
distinct 去重 rdd.distinct {1,2,3}
sample(withReplacement, fraction,[seed]) 取样 rdd.sample(False,0.5) 不确定
glom 按分区进行分组 rdd.glom() 不确定
repartition(num) rdd数据进行重新分为num个分区

两个 RDD 的转换操作

对数据{1,2,3}和数据{3,4,5} 进行操作

函数名 目的 实例 结果
union 合并两个RDD rdd.union(other) {1,2,3,3,4,5}
intersection 求两个rdd的共同元素 rdd.intersection(other) {3}
subtract 移除一个 RDD中的内容 rdd.subtract(other) {1,2}
cartesian 计算两个算子的笛卡尔积 rdd.cartesian(other) {(1,3),{1,4},(1,5),(2,3),(2,4),(2,5),(3,3),(3,4),(3,5)}

: 转换算子详细介绍 https://www.jianshu.com/p/340c848e9149

行动算子

对数据集{1,2,3,3} 进行基本的RDD行动算子操作

函数名 目的 实例 结果
collect 返回 RDD 所有元素 rdd.collect() {1,2,3,3}
count 返回 RDD 所有元素个数 rdd.count() 4
countByValue 统计每个元素次数 rdd.countByValue {(1,1),(2,1),(3,2)}
take(num) 从 RDD 中返回 num 个元素 rdd.take(2) {1,2}
top(num) 从 RDD 中返回最前面 num 个元素 rdd.top(2) {3,3}
takeOrdered 从 RDD 中按照顺序返回前num个元素 rdd.takeOrdered(2) {3,3}
takeSample 取样 不确定
reduce(func) 并行整合 RDD 中所有数据 rdd.reduce(x,y=>x+y) 9
fold(zerod,func) 与reduce类似需要提供初始值
aggregate 与reduce类似需要通常返回不同的数据类型
foreach(func) 对每个rdd中的元素作用func函数
foreachPartition(func) 每个分区元素列表作用于func函数

:行动算子 详细介绍: https://www.jianshu.com/p/c2186c5595da

相关文章

网友评论

    本文标题:Spark07 RDD 算子总结

    本文链接:https://www.haomeiwen.com/subject/ynblahtx.html