算子
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) 收藏 举报
浙公网安备 33010602011771号