2016-04-29 39 views
0

假设我有10个输入文件,每个文件大小为几GB,我试图将它们读入RDD并执行映射/缩减操作。在执行操作之前,Spark必须读取所有输入文件吗?

显然,reduce阶段将不得不等待所有10个文件完全加载。但map阶段可以更快开始吗?

换句话说,Spark是否会逐个创建每个分区,然后立即开始对该分区的数据运行map操作......还是等待所有数据完全从所有10个文件中加载完毕,然后才启动在所有分区上同时运行map

回答

0

您是否有理由相信在启动任何转换之前,spark正在等待所有要加载到内存中的文件?

Spark会做懒惰评估。所以,当你给它一组文件时,它会计算出需要多少工作,然后依次读取文件来处理它并转储输出。在开始处理之前,它不会尝试在内存中加载整个文件。

相关问题