对于Spark的初学者,往往会有一个疑问:Spark(如SparkRDD.SparkSQL)在处理数据的时候,会将数据都加载到内存再做处理吗? 很显然,答案是否定的! 对该问题产生疑问的根源还是对Spark计算模型理解不透彻. 对于Spark RDD,它是一个分布式的弹性数据集,不真正存储数据.如果你没有在代码中调用persist或者cache算子,Spark是不会真正将数据都放到内存里的. 此外,还要考虑persist/cache的缓存级别,以及对什么进行缓存(比如是对整张表生成的DataSe…