我正在阅读火花教科书,我看到转换和操作,我再次阅读rdd函数,所以我很困惑,谁能解释一下转换和火花rdd函数之间的基本区别是什么。
两者都用于更改 rdd 数据内容并返回新的 rdd,但我想知道确切的解释。
Spark rdd
函数transformations
,actions
两者兼而有之。 Transformation
是更改rdd
数据的函数,Action
是不更改数据但给出输出的函数。
例如:
map
、filter
、union
等都是transformation
的,因为它们有助于改变现有数据。 reduce
、collect
、count
都是action
的,因为它们给出输出而不是改变数据。欲了解更多信息,请访问Spark和Jacek
RDD仅支持两种类型的操作:转换(从现有数据集创建新数据集(和操作(在数据集上运行计算后向驱动程序返回值(。
RDD Functions
是教科书中用于内部机制的通用术语。
例如,MAP 是一种转换,它通过函数传递每个数据集元素并返回表示结果的新 RDD。REDUCE是一个使用某个函数聚合RDD的所有元素并将最终结果返回给驱动程序的操作。
由于Spark的集合本质上是不可变的,因此一旦创建了RDD,我们就无法更改数据。转换是应用于RDD并在输出中产生其他RDD的功能(即:map
,flatMap
,filter
,join
,groupBy
,...(。操作是应用于RDD并产生非RDD(数组,列表...等(数据作为输出(即:count
、saveAsText
、foreach
、collect
、...(。