首页 > 其他 > 详细

Spark-RDD 编程

时间:2019-07-06 15:54:55      阅读:124      评论:0      收藏:0      [点我收藏+]

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

 

 
 
2)使用 makeRDD()从集合创建
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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!