Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala spark中的转换和rdd函数有什么区别?_Scala_Apache Spark_Rdd - Fatal编程技术网

Scala spark中的转换和rdd函数有什么区别?

Scala spark中的转换和rdd函数有什么区别?,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,我在读spark教科书,我看到了转换和动作,我又读了rdd函数,所以我很困惑,谁能解释一下转换和spark rdd函数之间的基本区别呢 这两个函数都用于更改rdd数据内容和返回新的rdd,但我想知道精确的解释。Sparkrdd函数都是转换和操作这两个函数转换是更改rdd数据的函数,操作是不更改数据但给出输出的函数。 例如: 映射,过滤器,联合等都是转换,因为它们有助于更改现有数据。 减少,收集,计数都是操作,因为它们提供输出而不更改数据。 有关更多信息,请访问和RDD仅支持两种类型的操作:转换(

我在读spark教科书,我看到了转换和动作,我又读了rdd函数,所以我很困惑,谁能解释一下转换和spark 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
,…)