天天看点

实验1:spark新建一个rdd的时候会不会把数据读取到内存中实验1:spark新建一个rdd的时候会不会把数据读取到内存中

实验1:spark新建一个rdd的时候会不会把数据读取到内存中

实验工具:spark-shell

步骤:

1,spark读取一个不存在的hdfs文件新建一个rdd

2,rdd map

3,rdd reduce

结果:

在第1步和第2步并不会报错,第3步会报错,不存在的hdfs文件

结论:

新建sparkrdd的时候,并不会把数据读取到内存中,因为第一步没有报错,所以如果这个时候spark加载了数据,那么就会发现这个文件并不存在,然后再第一步的时候就报错

代码里也验证了这个情况

new HadoopRDD(
  this,
  confBroadcast,
  Some(setInputPathsFunc),
  inputFormatClass,
  keyClass,
  valueClass,
  minPartitions).setName(path)
           

先新建一个HadoopRDD对象,然后仅仅设置了Name

引申:

spark的一个原则是只有action才会触发任务执行

继续阅读