做网站的目的是什么,克隆网站到wordpress修改,安徽索凯特建设工程有限公司网站,芜湖北京网站建设02、体验Spark shell下RDD编程 1、Spark RDD介绍 RDD是Resilient Distributed Dataset#xff0c;中文翻译是弹性分布式数据集。该类是Spark是核心类成员之一#xff0c;是贯穿Spark编程的始终。初期阶段#xff0c;我们可以把RDD看成是Java中的集合就可以了#xff0c;在后…02、体验Spark shell下RDD编程 1、Spark RDD介绍 RDD是Resilient Distributed Dataset中文翻译是弹性分布式数据集。该类是Spark是核心类成员之一是贯穿Spark编程的始终。初期阶段我们可以把RDD看成是Java中的集合就可以了在后面的章节中会详细讲解RDD的内部结构和工作原理。 2、Spark-shell下实现对本地文件的单词统计 2.1思路 word count是大数据学习的经典案例很多功能实现都可以归结为是word count的使用。工作过程为使用SparkContext对象的textFile方法加载文件形成Spark RDD1RDD1中每个元素就是文件中的每一行文本然后对RDD的每个元素进行压扁flatMap操作形成RDD2RDD2中每个元素是将RDD1的每行拆分出来产生的单词因此RDD2就是单词的集合然后再对RDD2进行标一成对形成单词,1的元组的集合RDD3最后对RDD3进行按照key进行聚合操作形成RDD4最终将RDD4计算后得到的集合就是每个单词的数量 2.2 处理流程 App-SparkContext: textFile加载文件
SparkContext-RDD1: 创建RDD
RDD1--App: 返回RDD1
App-RDD1: flatMap压扁操作
RDD1-RDD2: 产生RDD2
RDD2--App: 返回RDD2
App-RDD2: map标一成对
RDD2-RDD3: 产生RDD3
RDD3--App: 返回RDD3
App-RDD3: reduceByKey聚合
RDD3-RDD4: 产生RDD4
RDD4--App: 返回RDD4
App-RDD4: collect收集结果数据 2.3 分步实现代码 // 进入spark shell环境
$spark-shell// 1.加载文件
scalaval rdd1 sc.textFile(file:///homec/centos/1.txt)// 2.压扁每行
scalaval rdd2 rdd1.flatMap(_.split( )) // 3.标1成对
scalaval rdd3 rdd2.map(w(w,1))// 4.按照key聚合每个key下的所有值
scalaval rdd4 rdd3.reduceByKey(__)// 5.显式数据
scalardd4.collect() 2.4 一步实现代码 $scalasc.textFile(file:///home/centos/1.txt).flatMap(_.split( )).map((_,1)).reduceByKey(__).collect 3、Spark-shell下实现对气温数据的最大最小聚合 3.1 思路分析 气温数据数各年度内气温列表将每一行变换成year,temp元组后按照yearn进行聚合即可。 3.2 处理流程 App-SparkContext: textFile加载文件
SparkContext-RDD1: 产生RDD1
RDD1--App: 返回RDD1
App-RDD1: map变换每行为(year,(max,min))元组
RDD1-RDD2: 产生RDD2
RDD2--App: 返回RDD2
App-RDD2: reduceByKey双聚合气温极值
RDD2-RDD3:产生RDD3
App-RDD3: collect()收集结果 3.3 分步实现代码 // 进入spark shell环境
$spark-shell// 1.加载气温数据文件
scalaval rdd1 sc.textFile(/home/centos/temps.dat)// 2.压扁每行
scalaval rdd2 rdd1.flatMap(e{val arr e.split( )(arr(0).toInt, (arr(1).toInt ,arr(1).toInt))
}) // 3.reduceByKey
scalaval rdd3 rdd2.reduceByKey((a,b){import scala.math(math.max(a(0),b(0)) , math.min(a(1),b(1)))
})// 4.收集日志
scalardd3.collect() 3.4 一步实现代码 $scalasc.textFile(file:///home/centos/temps.dat).map(line{val arr line.split( )(arr(0).toInt,(arr(1).toInt , arr(1).toInt))}).reduceByKey((a,b){import scala.math(math.max(a(0) , b(0)) , math.min(a(1) , b(1)))}).collect() 转载于:https://www.cnblogs.com/xupccc/p/9543961.html