RDD工作机制
RDD指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用,是Spark进行大数据处理计算的核心,在设计算法的时候,就是在设计RDD的操作,那么下面通过WordCount实例来详细介绍RDD的工作机制。关于RDD的特性和理论请参考“Spark 入门文档”。
1、在介绍RDD工作原理之前再回顾一下WordCount的例子:
第一步:创建saprk的配置对象SparkConf
val conf = new SparkConf()
conf.setAppName("My First Spark App!").setMaster("local")
第二步:创建SparkContext对象
val sc = new SparkContext(conf)
第三步:根据具体数据来源(HDFS,Hbase等)通过SparkContext来创建RDD
val lines = sc.textFile(“hdfs://{文件路径}/ helloSpark.txt”)
第四步:将每行字符拆分为单个单词
val words = lines.flatMap { line =>line.split(" ") }
第五步:在单词拆分的基础上对每个单词实例计数为1
val pairs = lines.map{word => (word, 1)}
第六步:在每个单词实例为1的基础之上统计每个单词出现的总次数