2最高气温和wordcount 命令行下
Posted lybpy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2最高气温和wordcount 命令行下相关的知识,希望对你有一定的参考价值。
最高气温
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(" ")) val rdd3 = rdd2.map((_,1)) val rdd4 = rdd3.reduceByKey(_ + _) val rdd5 = rdd4.sortBy(_._2) val lst = rdd5.collect lst.foreach(println)
以上是关于2最高气温和wordcount 命令行下的主要内容,如果未能解决你的问题,请参考以下文章