【问题标题】:What is difference between transformations and rdd functions in spark?spark中的转换和rdd函数有什么区别?
【发布时间】:2017-10-05 23:48:36
【问题描述】:

我正在阅读 spark 教科书,我看到了转换和动作,我又读了 rdd 函数,所以我很困惑,谁能解释转换和 spark rdd 函数之间的基本区别是什么。

两者都用于更改 rdd 数据内容并返回一个新的 rdd 但我想知道确切的解释。

【问题讨论】:

    标签: scala apache-spark rdd


    【解决方案1】:

    Spark rdd 函数是 transformationsactions 两者。 Transformation 是更改 rdd 数据的函数,Action 是不更改数据但提供输出的函数。
    例如:
    mapfilterunion 等都是transformation,因为它们有助于更改现有数据。 reducecollectcount 都是 action,因为它们提供输出而不是更改数据。 欲了解更多信息,请访问 SparkJacek

    【讨论】:

      【解决方案2】:

      RDD 仅支持两种类型的操作:转换(从现有数据集创建新数据集)和操作(在对数据集运行计算后将值返回给驱动程序)。

      RDD Functions是教科书中用于内部机制的通用术语。

      例如,MAP 是一种转换,它通过一个函数将每个数据集元素传递并返回一个表示结果的新 RDD。 REDUCE 是一个动作,它使用某个函数聚合 RDD 的所有元素,并将最终结果返回给驱动程序。

      【讨论】:

        【解决方案3】:

        由于 Spark 的集合本质上是不可变的,因此一旦创建 RDD,我们就无法更改数据。 转换是应用于 RDD 并在输出中产生其他 RDD 的函数(即:mapflatMapfilterjoingroupBy,...)。 操作是应用于 RDD 并产生非 RDD(数组、列表...等)数据作为输出的函数(即:countsaveAsTextforeachcollect、...)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-05-27
          • 2019-12-25
          • 2021-11-19
          • 2015-12-05
          • 1970-01-01
          • 2017-03-28
          • 1970-01-01
          • 2019-07-24
          相关资源
          最近更新 更多