实验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才会触发任务执行