有谁能帮助我理解spark如何读取hdfs数据并在主内存中管理它吗?
换句话说,
如果我从hadoop文件创建3rdd,第一个rdd并对其进行一些转换,然后创建第二个rdd,然后再次对第二个rdd进行一些转换,并创建第三个rdd,然后对第三个rdd调用一些操作。
将从hdfs读取多少次数据?
如果我们不显式地调用缓存或持久化,那么这三个rdd数据都会留在内存中吗?i、 e.当在第三个rdd上执行操作时,此时第一个rdd数据是否仍保留在内存中
有谁能帮助我理解spark如何读取hdfs数据并在主内存中管理它吗?
换句话说,
如果我从hadoop文件创建3rdd,第一个rdd并对其进行一些转换,然后创建第二个rdd,然后再次对第二个rdd进行一些转换,并创建第三个rdd,然后对第三个rdd调用一些操作。
将从hdfs读取多少次数据?
如果我们不显式地调用缓存或持久化,那么这三个rdd数据都会留在内存中吗?i、 e.当在第三个rdd上执行操作时,此时第一个rdd数据是否仍保留在内存中
2条答案
按热度按时间j2cgzkjk1#
如果您不缓存rdd3,那么spark将从hdfs读取数据,否则它将从内存读取数据。
mnowg1ta2#
如果所有rdd共享一个文件,那么在操作中只读取一次数据,而在任何转换中都不读取。
重新生成第三个rdd的dag将在内存中,因为如前所述,只有rdd#3将包含任何实际数据。