Spark Core :RDD与Spark流水线编程模型

  • 学会使用Spark中创建RDD的两种方法
  • 列出创建Spark程序的步骤
  • 结合本文内容解释“不可变性”
  • 能将Spark程序翻译成“变换”和“行为”的流水线
RDD的创建方法

Driver Program 是Spark程序的起点,它把RDD分发到集群并保证RDD的转化和动作的执行。Driver Program 中包含一个Spark Context,而每个Work Node中包含一个Spark Executor。RDD既可以从文件或集群中创建,也可以从数据结构中创建。

从文件创建时,使用sc.textFile()方法,如

#从hdfs内的文件创建
lines = sc.textFile("hdfs:/root/words.txt")
#从本地文件创建
lines = sc.textFile("/root/words.txt")

从数据结构创建时,使用sc.parallelize()方法,如

#从list创建
lines = sc.parallelize(["big","data"])

#并发地将[0,1,2,3...9]分割成三部分
numbers = sc.parallelize(range(10),3)
#结果为[0,1,2],[3,4,5],[6,7,8,9]
#合并
number.collect()
#结果为[0,1,2,3...9]
流水线编程模型

Spark中有两种操作,Transformation和Action。Spark程序有一种叫lazy evaluation的执行机制,即并不立即执行Transformation,等到一个Action执行时再一并执行Transformation。在前一篇大数据处理流水线中有提到一些常见的Transformation,如下图中的filter、map和reduce。相应的,collect和saveAsTextFile都是Action。

 RDD的不可变性immutable
immutable意味着RDD是不可变的,只读的。 前面提到 Spark会追踪每个文件分片的历史,当某一个文件分片损坏或丢失时,Spark会根据该文件分片所需的文件重新计算、创建该分片。 Immutable对追踪应用到数据集上的所有操作很有必要,它提供了维护一个RDD的线性链的能力。
  • 结合本文内容解释“不可变性”
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值