spark学习1

来源:互联网 发布:战网安装不了 传输数据 编辑:程序博客网 时间:2024/05/17 01:04

1.算子的分类

大致可以分为三大类算子。
1)Value数据类型的Transformation算子,这种变换并不触发提交
作业,针对处理的数据项是Value型的数据。
2)Key-Value数据类型的Transfromation算子,这种变换并不触发
提交作业,针对处理的数据项是Key-Value型的数据对。
3)Action算子,这类算子会触发SparkContext提交Job作业。

1.1Value型Transformation算子

处理数据类型为Value型的Transformation算子可以根据RDD变换
算子的输入分区与输出分区关系分为以下几种类型。
1)输入分区与输出分区一对一型。
2)输入分区与输出分区多对一型。
3)输入分区与输出分区多对多型。
4)输出分区为输入分区子集型。
5)还有一种特殊的输入与输出分区一对一的算子类型:Cache
型。Cache算子对RDD分区进行缓存。

1.1.1 输入分区与输出分区一对一型

    map  flatMap glom(每个分区形成一个数组,内部实现是返回的GlommedRDD)

1.1.2 输入分区与输出分区多对一型

union  cartesian 

1.1.3输入分区与输出分区多对多型

groupBy:将元素通过函数生成相应的Key,数据就转化为Key-Value格式,之后将Key相同的元素分为一组
例如,V1,V2合并为一个Key-Value对,其中key为“V”,Value为“V1,V2”,形成V,Seq(V1,V2)
1.1.4输出分区为输入分区子集型

filter distinct subtract(RDD相减)

1.1.5 Cache型

cache persist数据缓存在哪里由StorageLevel
枚举类型确定。有以下几种类型的组合,DISK代表磁盘,MEMORY代表内存,SER代表数据是否进行序列化存储。

1.2 Key-Value型Transformation算子

1.2.1输入分区与输出分区一对一

mapValues:针对(Key,Value)型数据中的Value进行Map操作,而不对Key进行处理
1.2.2对单个RDD或两个RDD聚集

combineByKey reduceByKey

1.2.3连接

join

1.3Action算子

Action算子的输出空间将Action算子进行分类:无输出、HDFS、Scala集合和数据类型

1.3.1无输出

foreach 

1.3.2HDFS

saveAsTextFile saveAsObjectFile

1.3.3 Scala集合和数据类型

collect  count  collectAsMap top 
0 0
原创粉丝点击