任何人都可以解释一下,RDD转换的结果是什么?它是新的数据集(数据副本)还是只是新的指针集,过滤旧数据块?
pze*_*vic 13
RDD转换允许您在RDD之间创建依赖关系.依赖关系只是产生结果的步骤(程序).沿袭链中的每个RDD(依赖性串)具有用于计算其数据的函数,并且具有指向其父RDD的指针(依赖性).Spark会将RDD依赖项划分为阶段和任务,并将这些依赖项发送给工作人员执行.
所以,如果你这样做:
val lines = sc.textFile("...")
val words = lines.flatMap(line => line.split(" "))
val localwords = words.collect()
Run Code Online (Sandbox Code Playgroud)
单词将是包含对行RDD的引用的RDD.执行程序时,将执行第一行的功能(从文本文件加载数据),然后对结果数据执行单词'功能(将分割行分成单词).Spark很懒,所以除非你调用一些会触发作业创建和执行的转换或动作(在这个例子中收集),否则不会执行任何操作.
因此,RDD(转换后的RDD)也不是"一组数据",而是程序中的一个步骤(可能是唯一的步骤)告诉Spark如何获取数据以及如何处理数据.
| 归档时间: |
|
| 查看次数: |
3426 次 |
| 最近记录: |