RDD的 transformations 和 actions 总结
【摘要】
RDD的transformations和actions
两个RDD:一个RDD包含 {1, 2, 3} , 另一个RDD包含{3, 4, 5}
函数名功能例子结果map()对每个元素应用函数rdd.m...
RDD的transformations和actions
两个RDD:一个RDD包含 {1, 2, 3} , 另一个RDD包含{3, 4, 5}
函数名 | 功能 | 例子 | 结果 |
---|---|---|---|
map() | 对每个元素应用函数 | rdd.map(x=>x+1) | {2,3,4,4} |
intersection() | 交集 rdd.intersection(other) | {3} | |
subtract() | 取存在第一个RDD,而不存在第二个RDD的元素(使用场景,机器学习中,移除训练集) | rdd.subtract(other) | {1,2} |
cartesian() | 笛卡儿积 | rdd.cartesian(other) | { (1,3), (1,4), … (3,5) } |
colletc() | 返回RDD的所有元素 | rdd.collect() | {1,2,3,3} |
count() | 计数 | rdd.count() | 4 |
countByValue() | 返回一个map,表示唯一元素出现的个数 | rdd.countByValue() | { (1,1) ,(2,1), (3,2) } |
take(num) | 返回num个元素 | rdd.take(2) | {1,2} |
top(num) | 返回前num个元素 | rdd.top(2) | {3 , 3} |
takeOrdered(num)(ordering) | 返回基于的排序算法的前几个元素 | rdd.takeOrdered(2)(MyOrdering) | {3, 3} |
takeSample(withReplacement,num,[seed]) | 取样例 | rdd.takeSample(false, 1) | 不确定 |
reduce(func) | 合并RDD中的元素 | rdd.reduce((x, y ) => x+y ) | 9 |
fold(zero)(func) | 与reduce()相似提供zero value | rdd.flod(0)((x, y ) => x+y ) | 9 |
aggregate(zeroValue)(seqOp,combOp) | 与fold()相似,返回不同类型 | rdd.aggregate((0, 0) (x, y)) => (x._1 +y , x._2 + 1), (x, y)=>(x._1 +y ._1, x._2 + y._2), | (9 , 4) |
foreach(func) | 对RDD的每个元素作用函数,上面也不返回 | rdd.foreach(func) | 什么也没有 |
文章来源: blog.csdn.net,作者:小生凡一,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_45304503/article/details/118662356
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)