【发布时间】:2015-04-13 07:48:01
【问题描述】:
Spark 中的所有转换都是惰性的,因为它们不会立即计算结果。相反,他们只记得应用于某些基础数据集(例如文件)的转换。仅当操作需要将结果返回给驱动程序时才会计算转换。
我目前正在处理一个大型数据集,该数据集在处理后会输出更大量的数据,这些数据需要存储在文本文件中,就像使用命令 saveAsTextFile(path) 一样。
到目前为止,我一直在使用这种方法;然而,由于它是一个动作(如上所述)而不是一个转换,Spark 需要将数据从每个分区发送到驱动节点,从而减慢了相当多的保存过程。
我想知道Spark上是否存在任何分布式文件保存方法(类似于saveAsTextFile()),使每个执行器能够自己存储自己的分区。
【问题讨论】:
-
为什么你认为懒惰会影响数据输出?您是否有机会在 shell 中工作?
标签: performance apache-spark distributed-computing