Spark主内存要求是否与已处理数据的大小有关?
Spark驱动程序和Spark工作程序/执行程序直接处理已处理的数据(并执行应用程序代码),因此它们的内存需求可以链接到已处理数据的大小。但Spark主机是否受数据大小的影响?在我看来,它不是,因为它只管理Spark工作者,并且不直接使用数据本身。
答案 0 :(得分:1)
Spark主要数据实体(例如DataFrame或DataSet)基于RDD
或弹性分布式数据集。它们是分布式的,这意味着处理通常在执行程序中进行。
有些RDD
操作将以驱动程序进程中的数据结尾。最值得注意的是collect
和其他使用它的操作(例如show
,take
或toPandas
(如果使用的是python))。顾名思义,collect
将收集分布式数据集的部分或全部行,并在驱动程序过程中实现它们。此时,是的,您将需要考虑数据的内存占用量。
这就是为什么您通常希望尽可能减少collect
数据的原因。您可以进行groupBy
,filter
和许多其他转换,以便如果需要在驱动程序中处理数据,则它是最精致的。