RDD 编程
1 编程模型
在 Spark 中,RDD 被表示为对象,通过对象上的方法调用来对 RDD 进行转换。经过
一系列的 transformations 定义 RDD 之后,就可以调用 actions 触发 RDD 的计算,action 可
以是向应用程序返回结果(count, collect 等),或者是向存储系统保存数据(saveAsTextFile
等)。在 Spark 中,只有遇到 action,才会执行 RDD 的计算(即延迟计算),这样在运行时可
以通过管道的方式传输多个转换。
要使用 Spark,开发者需要编写一个 Driver 程序,它被提交到集群以调度运行
Worker,如下图所示。Driver 中定义了一个或多个 RDD,并调用 RDD 上的 action,Worker
则执行 RDD 分区计算任务。
2 RDD 的创建
在 Spark 中创建 RDD 的创建方式可以分为三种:从集合中创建 RDD;从外部存储创
建 RDD;从其他 RDD 创建。
2.1 从集合中创建
从集合中创建 RDD,Spark 主要提供了两种函数:parallelize 和 makeRDD
1)使用 parallelize()从集合创建
scala> val rdd = sc.parallelize(Array(1,2,3,4,5,6,7,8))
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:24
scala> val rdd1 = sc.makeRDD(Array(1,2,3,4,5,6,7,8))
rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[1] at makeRDD at <console>:24
2.2 由外部存储系统的数据集创建
包括本地的文件系统,还有所有 Hadoop 支持的数据集,比如 HDFS、Cassandra、HBase
等,之后详细介绍。
scala> val rdd2= sc.textFile("hdfs://hadoop102:9000/RELEASE")
rdd2: org.apache.spark.rdd.RDD[String] = hdfs:// hadoop102:9000/RELEASE
MapPartitionsRDD[4] at textFile at <console>:24
2.3 从其他 RDD 创建
后面详解
3 RDD 的转换(面试开发重点)
RDD 整体上分为 Value 类型和 Key-Value 类型
3.1 Value 类型
3.1.1 map(func)案例
1. 作用:返回一个新的 RDD,该 RDD 由每一个输入元素经过 func 函数转换后组成
Spark-RDD 编程
原文:https://www.cnblogs.com/LXL616/p/11142909.html