1.Transformations 转换算子
- 概念:
1 .Transformations 类算子是一类算子(函数)叫做转换算子,如 map,flatMap,reduceByKey 等。Transformations 算子是延迟执行, 也叫懒加载执行。 - Transformation 类算子:
1 .filter:过滤符合条件的记录数,true 保留,false 过滤掉。
2 .map:将一个 RDD 中的每个数据项,通过 map 中的函数映射变为一个 新的元素。 特点:输入一条,输出一条数据。
3 .flatMap:先 map 后 flat。与 map 类似,每个输入项可以映射为 0 到多个 输出项。
4 .sample:随机抽样算子,根据传进去的小数按比例进行又放回或者无放回的 抽样。
5 .reduceByKey:将相同的 Key 根据相应的逻辑进行处理。
6 .sortByKey/sortBy:作用在 K,V 格式的 RDD 上,对 key 进行升序或者降序排序。
2.Action 行动算子
- 概念:
Action 类算子也是一类算子(函数)叫做行动算子,如 foreach,collect,count 等。Transformations 类算子是延迟执行, Action 类算子是触发执行。一个 application 应用程序中有几个 Action 类算子执行,就有几个 job 运行。 - Action 类算子
1 .count:返回数据集中的元素数。会在结果计算完成后回收到 Driver 端。
2 .foreach:循环遍历数据集中的每个元素,运行相应的逻辑。
3 .first:first=take(1),返回数据集中的第一个元素。
4 .take(n):返回一个包含数据集前 n 个元素的集合。
3.Spark 代码流程
①.创建SparkConf()
val conf = new SparkConf()
conf.setMaster… ;conf.setAppName…
②.创建SparkContext()
val sc = new SparkContext(conf)
③.创建RDD
val rdd = sc.textFile(abc.txt)
④.对RDD使用Transformation类算子进行数据转换
例如:map/flatMap/reduceByKey/sample
⑤.对RDD使用Action类算子进行触发执行
例如:take/foreach
⑥.sc.stop()