码迷,mamicode.com
首页 > 其他好文 > 详细

2、最高气温和wordcount 命令行下

时间:2018-10-09 21:38:36      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:reduce   mp3   命令行   put   ble   span   数据文件   mat   单词统计   

最高气温

1、上传温度数据文件到HDFS

hdfs dfs -put temp3.dat /

2、求最高、最低、平均温度

方式一,无reduceByKey

val rdd1 = sc.textFile("/temp3.dat")
val rdd2 = rdd1.map(s=>{val ss = s.split(" ");(ss(0).toInt,ss(1).toInt)})
val rdd3 = rdd2.groupByKey
val rdd4 = rdd3.mapValues(i=>(i.max,i.min,i.sum/i.size.toDouble))
val rdd5 = rdd4.sortByKey(true)
val lst = rdd5.collect
lst.foreach(println)

方式二,有reduceByKey

val rdd1 = sc.textFile("/temp3.dat")
val rdd2 = rdd1.map(s=>{val ss = s.split(" ");(ss(0).toInt,(ss(1).toInt,ss(1).toInt,ss(1).toInt,1))})
val rdd3 = rdd2.reduceByKey((a,b)=>(math.max(a._1,b._1),math.min(a._2,b._2),a._3 + b._3,a._4 + b._4))
val rdd4 = rdd3.mapValues(t=>(t._1,t._2,t._3/t._4.toDouble))
val rdd5 = rdd4.sortByKey(true)
val lst = rdd5.collect
lst.foreach(println)

 

wordcount

1、上传文本文件到HDFS

hdfs dfs -put www /

2、单词统计

val rdd1 = sc.textFile("/www")
val rdd2 = rdd1.flatMap(_.split("\t"))
val rdd3 = rdd2.map((_,1))
val rdd4 = rdd3.reduceByKey(_ + _)
val rdd5 = rdd4.sortBy(_._2)
val lst = rdd5.collect
lst.foreach(println)

 

2、最高气温和wordcount 命令行下

标签:reduce   mp3   命令行   put   ble   span   数据文件   mat   单词统计   

原文地址:https://www.cnblogs.com/lybpy/p/9762627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!