为什么 Spark 中的“收集”操作会触发对驱动程序的数据收集?

问题描述

当我们在 spark 中使用 showtakewrite 动作时,所有数据都会发送给驱动程序吗?如果不是,那为什么当我们使用 collect 时,所有数据都转到驱动程序?

解决方法

showtake 获取您请求的数据量(例如 20 行)到驱动程序,而 collect 获取整体中的数据数据帧,跨所有分区,到驱动程序。 write 会将整个数据帧输出到文件位置,但通常以分区方式完成,这意味着每个执行器都可以将其分区中包含的数据直接写入文件系统。