Scala spark中的转换和rdd函数有什么区别?
我在读spark教科书,我看到了转换和动作,我又读了rdd函数,所以我很困惑,谁能解释一下转换和spark rdd函数之间的基本区别呢Scala spark中的转换和rdd函数有什么区别?,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,我在读spark教科书,我看到了转换和动作,我又读了rdd函数,所以我很困惑,谁能解释一下转换和spark rdd函数之间的基本区别呢 这两个函数都用于更改rdd数据内容和返回新的rdd,但我想知道精确的解释。Sparkrdd函数都是转换和操作这两个函数转换是更改rdd数据的函数,操作是不更改数据但给出输出的函数。 例如: 映射,过滤器,联合等都是转换,因为它们有助于更改现有数据。 减少,收集,计数都是操作,因为它们提供输出而不更改数据。 有关更多信息,请访问和RDD仅支持两种类型的操作:转换(
这两个函数都用于更改rdd数据内容和返回新的rdd,但我想知道精确的解释。Spark
rdd
函数都是转换
和操作
这两个函数<代码>转换是更改rdd
数据的函数,操作
是不更改数据但给出输出的函数。例如:
映射
,过滤器
,联合
等都是转换
,因为它们有助于更改现有数据。
减少
,收集
,计数
都是操作
,因为它们提供输出而不更改数据。
有关更多信息,请访问和RDD仅支持两种类型的操作:转换(从现有数据集创建新数据集)和操作(在数据集上运行计算后向驱动程序返回值)
RDD函数
是教科书中用于内部机制的通用术语
例如,MAP是一种转换,它通过一个函数传递每个数据集元素,并返回一个表示结果的新RDD。REDUCE是一个操作,它使用某个函数聚合RDD的所有元素,并将最终结果返回给驱动程序。由于Spark的集合本质上是不可变的,因此一旦创建RDD,我们就不能更改数据。 转换是应用于RDD并在输出中生成其他RDD的函数(即:
map
,flatMap
,filter
,join
,groupBy
,…)。
操作是应用于RDD并生成非RDD(数组、列表等)数据作为输出的函数(即:count
,saveAsText
,foreach
,collect
,…)