1.Transformations 转换算子

  1. 概念:
    1 .Transformations 类算子是一类算子(函数)叫做转换算子,如 map,flatMap,reduceByKey 等。Transformations 算子是延迟执行, 也叫懒加载执行。
  2. 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 行动算子

  1. 概念:
    Action 类算子也是一类算子(函数)叫做行动算子,如 foreach,collect,count 等。Transformations 类算子是延迟执行, Action 类算子是触发执行。一个 application 应用程序中有几个 Action 类算子执行,就有几个 job 运行。
  2. 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()