博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark常用算子总结
阅读量:5118 次
发布时间:2019-06-13

本文共 1449 字,大约阅读时间需要 4 分钟。

算子分为value-transform, key-value-transform, action三种。f是输入给算子的函数,比如lambda x: x**2

 

常用算子:

keys: 取pair rdd的key部分

values: 取pair rdd的value部分

map: f作用于每个元素

flatMap: f作用于每个元素、输出list,然后对list压平

mapValues: f作用于pair rdd的value部分

flatMapValues: f作用于pair rdd的value部分,然后对list压平(即将list各元素分发配对到对应的key后)

mapPartitions: f作用于每个part,输入是iterator

mapParttitionsWithIndex: f作用于每个part,输入是(index,iterator)

glom: 将元素汇集成list

groupBy: f作用于每个元素并构造key,相同key的元素聚合成value_list

groupByKey: pair rdd的相同key的元素shuffle后,value部分聚合成value_list

repartition: 设定每个rdd的part个数,包含shuffle操作(即汇集有相同key的pair),操作前后会改变并行度

coalesce: 设定并降低part数量,不做shuffle操作

repartitionAndSortWithinPartitions: 设定每个rdd的part个数,目标part中按照key部分排序

sortByKey: 对pair rdd的所有元素shuffle后按key部分排序

cogroup: 两个pair rdd shuffle后相同key的元素聚合成value_iterator_list

reduce: f遍历元素list,须满足交换律和结合律

reduceByKey: pair rdd shuffle后相同key的元素聚合成value_list,f遍历value_list

filter: f作用于每个元素输出bool值,满足条件的元素会保留

collect: 汇集所有的元素

take:取数据集前n个元素

 

union: 合并两个rdd的元素集合(不去重)

intersection: 两个rdd的元素集合取交集

join: pair rdd shuffle后相同key的value部分inner join,即(k, v1) join (k, v2) -> (k, (v1, v2))

distinct: 遍历元素list去重

subtract: 两个rdd的元素集合取差集

count: 计数元素个数

countByKey: 计数有相同key的value的个数,返回hashmap结构

 

saveAsTextFile: rdd转化为文本文件并保存

foreach: f作用于每个元素,常用于print

broadcast: 将变量分发/广播到各个任务上,书写".value"取其值

 

经验:

broadcast变量时妥善使用数据结构,比如set类型查找很快。相对于用list任务运行快很多。

spark-submit参数用--files s3://path/to/file可分发s3文件到计算节点当前目录

 

参考资料:

spark sql: 

转载于:https://www.cnblogs.com/yaoyaohust/p/9925988.html

你可能感兴趣的文章
JavaWeb学习之JSTL自定义标签库的使用、JSTL自定义函数库(7)
查看>>
android TextView 设置部分文字背景色 和 文字颜色
查看>>
iOS--控制器加载自定义view的xib
查看>>
java反射详解
查看>>
android蓝牙4.0(BLE)开发之ibeacon初步
查看>>
在Ubuntu上下载、编译和安装Android最新源代码
查看>>
串匹配数据结构-练习4 字符串匹配
查看>>
集成信息医院需要什么样的集成平台
查看>>
图片切换[置顶] 送大家几款可以运用到实际项目的flash+xml控件
查看>>
单片机开发 郭天祥
查看>>
抽象类和纯虚函数
查看>>
lua类对象
查看>>
去掉Html标签方法
查看>>
SecureStoreProvider扩展:验证Application中是否有当前用户的credentials
查看>>
用Visual Studio Code Debug世界上最好的语言
查看>>
CDN 服务域名解析配置
查看>>
eclipse使用git插件导入码云上的maven工程
查看>>
uuid-不好之处
查看>>
Codeforces Beta Round #96 (Div. 2) 133B. Unary(快速幂)
查看>>
IOS , plist 配置项说明
查看>>