当我们在spark中使用show
或take
或write
操作时,所有数据都会发送到驱动程序吗?如果不是,那么为什么当我们使用 collect
时所有数据都会发送到驱动程序?
最佳答案
show
和 take
将您请求的数据量(例如 20 行)提取到驱动程序上,而 collect
将数据提取到整个数据帧,跨所有分区,到驱动程序上。 write
会将整个数据帧输出到一个文件位置,但它通常以分区的方式完成,这意味着每个执行器可以直接将其分区中包含的数据写入文件系统。
关于apache-spark - 为什么spark中的 "collect" Action 会触发驱动程序的数据收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65455641/