SPARK如何读取数据并在内存中进行管理

时间:2017-07-07 00:44:40

标签: hadoop apache-spark hdfs

有谁能帮我理解SPARK如何读取hdfs数据并在主存中管理它?

换句话说,

如果我创建3个RDD,首先从hadoop文件进行RDD并对其进行一些转换并创建第二个RDD并再次对第二个RDD进行一些转换并创建第三个RDD然后在第三个RDD上调用一些动作。

  1. 从hdfs读取数据的次数?
  2. 如果我们不调用缓存或显式保持,那么所有三个RDD数据是否都会保留在内存中?即在第3个RDD上执行某个动作时,第一个RDD数据是否保留在内存中

2 个答案:

答案 0 :(得分:1)

如果所有RDD共享一个文件,则数据将仅在操作上读取一次,而不是在任何转换上读取。

重新生成第三个RDD的DAG将在内存中,因为如上所述,只有RDD#3将包含任何实际数据。

答案 1 :(得分:0)

如果您不缓存RDD3,那么Spark将从HDFS读取数据,否则它将从内存中读取。