火花驱动程序如何处理大于内存的数据?考虑集群上的TB数据,我们通过密钥或收集进行减少。它是否将数据溢出到磁盘?即使它确实如此,当我们在驱动程序上有一个GB的磁盘空间并且我们正在处理TB时会发生什么。
答案 0 :(得分:2)
Spark不会“处理”过多的数据返回给驱动程序。驱动程序将遇到内存不足错误。
应始终谨慎地收集或运行需要数据转到单个节点(驱动程序与否)的操作。
所警告的那样这会导致驱动程序内存不足,因为collect()会将整个RDD提取到一台机器上;如果您只需要打印RDD的一些元素,更安全的方法是使用take():rdd.take(100).foreach(println)。