谁能解释一下,结果是什么RDD 转换?它是新的数据集(数据副本)还是只是新的指针集,用于过滤旧数据块?
RDD 转换允许您在 RDD 之间创建依赖关系。依赖关系只是产生结果(程序)的步骤。谱系链(依赖字符串)中的每个 RDD 都有一个计算其数据的函数,并有一个指向其父 RDD 的指针(依赖)。 Spark会将RDD依赖项划分为阶段和任务,并将其发送给worker执行。
所以如果你这样做:
val lines = sc.textFile("...")
val words = lines.flatMap(line => line.split(" "))
val localwords = words.collect()
Words 将是一个包含对 RDD 行的引用的 RDD。当程序执行时,将执行第一行的函数(从文本文件加载数据),然后对结果数据执行单词的函数(将行分割成单词)。 Spark 是惰性的,因此除非您调用一些将触发作业创建和执行的转换或操作(在本例中为收集),否则不会执行任何操作。
因此,RDD(也称为转换后的 RDD)不是“一组数据”,而是程序中的一个步骤(可能是唯一的步骤),告诉 Spark 如何获取数据以及如何处理数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)