Spark RDD:原理、操作与持久化深度解析
1. RDD基础操作与特性
在Spark中,弹性分布式数据集(RDD)是核心的数据抽象。 .collect 方法是与 parallelize 相对应的操作,它能将RDD转换为Scala数组。示例如下:
scala> val wordLengths = wordsRDD.map { _.length }
wordLengths: RDD[Int] = MapPartitionsRDD[2] at map at <console>:25
scala> wordLengths.collect
Array[Int] = Array(3, 5, 5, 3, 6, 4, 3, 3)
不过, .collect 方法要求整个RDD能放入主节点的内存中,所以通常用于调试小数据集,或者在数据处理管道的末尾使用。
RDD具有以下重要特性:
- 不可变 :一旦创建,RDD就不能被修改。对RDD的所有操作要么创建新的RDD,要么生成其他Scala对象。
- 惰性 :与Scala集合不同,对RDD执行如 map 和 filter 等操作时,这些操作不会立即执行,而是在需要时才进行计算。例如:
val email = sc
超级会员免费看
订阅专栏 解锁全文
1359

被折叠的 条评论
为什么被折叠?



