【发布时间】:2017-10-05 23:48:36
【问题描述】:
我正在阅读 spark 教科书,我看到了转换和动作,我又读了 rdd 函数,所以我很困惑,谁能解释转换和 spark rdd 函数之间的基本区别是什么。
两者都用于更改 rdd 数据内容并返回一个新的 rdd 但我想知道确切的解释。
【问题讨论】:
标签: scala apache-spark rdd
我正在阅读 spark 教科书,我看到了转换和动作,我又读了 rdd 函数,所以我很困惑,谁能解释转换和 spark rdd 函数之间的基本区别是什么。
两者都用于更改 rdd 数据内容并返回一个新的 rdd 但我想知道确切的解释。
【问题讨论】:
标签: scala apache-spark rdd
RDD 仅支持两种类型的操作:转换(从现有数据集创建新数据集)和操作(在对数据集运行计算后将值返回给驱动程序)。
RDD Functions是教科书中用于内部机制的通用术语。
例如,MAP 是一种转换,它通过一个函数将每个数据集元素传递并返回一个表示结果的新 RDD。 REDUCE 是一个动作,它使用某个函数聚合 RDD 的所有元素,并将最终结果返回给驱动程序。
【讨论】:
由于 Spark 的集合本质上是不可变的,因此一旦创建 RDD,我们就无法更改数据。
转换是应用于 RDD 并在输出中产生其他 RDD 的函数(即:map、flatMap、filter、join、groupBy,...)。
操作是应用于 RDD 并产生非 RDD(数组、列表...等)数据作为输出的函数(即:count、saveAsText、foreach、collect、...)。
【讨论】: