算子

 

Spark 中最基本的数据抽象是 RDD。

RDD:弹性分布式数据集 (Resilient Distributed DataSet)。

不可变,分区,并行

Spark的算子的分类

(1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。

      Value数据类型的Transformation算子

         Key-Value数据类型的Transfromation算子

(2)Action 行动算子:这类算子会触发 SparkContext 提交 Job 作业。

1)Value数据类型的Transformation算子  

 

    1、map算子

    2、flatMap算子

    3、mapPartitions算子

    4、glom算子

    5、union算子

    6、cartesian算子

    7、grouBy算子

                   orderBy算子

                   repartition算子

 

    8、filter算子

    9、distinct算子

    10、subtract算子

    11、sample算子

        12、takeSample算子

    13、cache算子  

    14、persist算子

2)Key-Value数据类型的Transfromation算子

 

    mapValues算子

    reduceByKey算子

 

              groupByKey算子

              aggregateByKey算子

      combineByKey算子

              sortByKey算子

              partition

       intersection

 

               subtract

     join算子

               Cogroup算子

 

 

 

3)Action算子

  一、无输出

    22、foreach算子

  二、HDFS

    23、saveAsTextFile算子

    24、saveAsObjectFile算子

  三、Scala集合和数据类型

    25、collect算子

    26、collectAsMap算子

      27、reduceByKeyLocally算子

      28、lookup算子

    29、count算子

    30、top算子

    31、reduce算子

    32、fold算子

    33、aggregate算子

 

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object rdd01 {
  def main(args: Array[String]): Unit = {
    //本地模式
    val conf: SparkConf = new SparkConf().setAppName("My scala word count").setMaster("local")

    //创建spark上下文对象
    val sc = new SparkContext(conf)

    //创建RDD
    //1)从内存中创建makeRDD,parallelize
    val listRDD: RDD[Int] = sc.makeRDD(List(1,2,3,4),3)
    val ArrayRDD: RDD[Int] = sc.parallelize(Array(1,2,3,4))

    //2)从文件中创建,默认情况下可读取项目路径,也可读取其他路径:本地,hdfs
    //读取文件时,传递的分区数为最小分区数,但是不一定是这个分区数,取决于hadoop读取文件时的分片规则
    val FileRDD: RDD[String] = sc.textFile("E:/software/qiao/test.txt")

    //listRDD.collect().foreach(println)
    listRDD.saveAsTextFile("output")


  }

}

 

posted on 2020-09-18 19:20  happygril3  阅读(322)  评论(0)    收藏  举报

导航