Spark会把数据都载入到内存么?
前言 很多初学者其实对Spark的编程模式还是RDD这个概念理解不到位,就会产生一些误解。 比如,很多时候我们常常以为一个文件是会被完整读入到内存,然后做各种变换,这很可能是受两个概念的误导: RDD的定义,RDD是一个分布式的不可变数据集合 Spark 是一个内存处理引擎 如果你没有主动对RDDCache/Persist,它不过是一个概念上存在的虚拟数据集,你实际上是看不到这个RDD的数据的全集的(他不会真的都放到内存里)。 RDD的本质是什么 一个RDD 本质上是一个函数,而RDD的变换不过是函数的嵌套。RDD我认为有两类: 输入RDD,典型如KafkaRDD,JdbcRDD 转换RDD,如MapPartitionsRDD 我们以下面的代码为例做分析: sc.textFile("abc.log").map().saveAsTextFile("") textFile 会构建出一个NewHadoopRDD, map函数运行后会构建出一个MapPartitionsRDD saveAsTextFile触发了实际流程代码的执行 所以RDD不过是对一个函数的封装,当一个函数对数据处理完成后,我...