Apache spark Spark-forEach vs-Map函数

Apache spark Spark-forEach vs-Map函数,apache-spark,dictionary,foreach,Apache Spark,Dictionary,Foreach,我正准备进行一次审查,结果表明: forEach强制将所有数据发送到单个进程(驱动程序) 这将导致大规模的问题(例如OutOfMemory问题)。而是 map()函数的作用与此相同,并跨 群集中的不同工作节点 这是正确的,我找不到任何文件说,forEach是不分发的,而地图是分发的 我相信您正在谈论在RDD或Dataset上应用这些函数。 在这两种情况下,司机都不会受到任何影响。所有代码都在executor中执行。foreach是一个不返回任何内容的操作,其中as map()充当从一个值到另一个

我正准备进行一次审查,结果表明:

forEach强制将所有数据发送到单个进程(驱动程序) 这将导致大规模的问题(例如OutOfMemory问题)。而是 map()函数的作用与此相同,并跨 群集中的不同工作节点


这是正确的,我找不到任何文件说,forEach是不分发的,而地图是分发的

我相信您正在谈论在RDD或Dataset上应用这些函数。 在这两种情况下,司机都不会受到任何影响。所有代码都在executor中执行。foreach是一个不返回任何内容的操作,其中as map()充当从一个值到另一个值的转换器

def foreach(f:(T)⇒ 单位:单位 将函数f应用于此RDD的所有元素

foreach(func)对数据集的每个元素运行函数func。这通常是为了解决副作用,例如更新累加器或与外部存储系统交互。 注意:在foreach()之外修改累加器以外的变量可能会导致未定义的行为。有关更多详细信息,请参见了解闭包

def映射[U](f:(T)⇒ U) (隐式arg0:ClassTag[U]):RDD[U] 通过将函数应用于此RDD的所有元素来返回新RDD