问题描述
当我们在 spark 中使用 show
或 take
或 write
动作时,所有数据都会发送给驱动程序吗?如果不是,那为什么当我们使用 collect
时,所有数据都转到驱动程序?
解决方法
show
和 take
获取您请求的数据量(例如 20 行)到驱动程序,而 collect
获取整体中的数据数据帧,跨所有分区,到驱动程序。 write
会将整个数据帧输出到文件位置,但通常以分区方式完成,这意味着每个执行器都可以将其分区中包含的数据直接写入文件系统。