goods.txt
13059 2019-12-23 06:12:29 15281 2019-12-23 06:12:29 14905 2019-12-23 06:12:29 14622 2019-12-23 06:12:29 19817 2019-12-23 06:12:29 13009 2019-12-23 06:12:29 14572 2019-12-23 06:12:29 11081 2019-12-23 06:12:29 17228 2019-12-23 06:12:29 16931 2019-12-23 06:12:29 18945 2019-12-23 06:12:29 18013 2019-12-23 06:12:29 11879 2019-12-23 06:12:29 17429 2019-12-23 06:12:29 17570 2019-12-23 06:12:29 12141 2019-12-23 06:12:29 11758 2019-12-23 06:12:29 15326 2019-12-23 06:12:29 14718 2019-12-23 06:12:29 13607 2019-12-23 06:12:29 16815 2019-12-23 06:12:29 11954 2019-12-23 06:12:29 12841 2019-12-23 06:12:29 18054 2019-12-23 06:12:29 12340 2019-12-23 06:12:29 17825 2019-12-23 06:12:29 10948 2019-12-23 06:12:29 17236 2019-12-23 06:12:29 14181 2019-12-23 06:12:29 16364 2019-12-23 06:12:29 10167 2019-12-23 06:12:29 15274 2019-12-23 06:12:29 15835 2019-12-23 06:12:29 15301 2019-12-23 06:12:29 10411 2019-12-23 06:12:29 15269 2019-12-23 06:12:29 19951 2019-12-23 06:12:29 13363 2019-12-23 06:12:29 16532 2019-12-23 06:12:29 17222 2019-12-23 06:12:29 14913 2019-12-23 06:12:29 18991 2019-12-23 06:12:29 15675 2019-12-23 06:12:29 16375 2019-12-23 06:12:29 12181 2019-12-23 06:12:29 12846 2019-12-23 06:12:29 19642 2019-12-23 06:12:29 17573 2019-12-23 06:12:29 16103 2019-12-23 06:12:29 18154 2019-12-23 06:12:29 11089 2019-12-23 06:12:29 14158 2019-12-23 06:12:29 18991 2019-12-23 06:12:29 14799 2019-12-23 06:12:29 12870 2019-12-23 06:12:29 12153 2019-12-23 06:12:29 16096 2019-12-23 06:12:29 16640 2019-12-23 06:12:29 18872 2019-12-23 06:12:29 10108 2019-12-23 06:12:29 15066 2019-12-23 06:12:29 11491 2019-12-23 06:12:29 18612 2019-12-23 06:12:29 18973 2019-12-23 06:12:29 15727 2019-12-23 06:12:29 13312 2019-12-23 06:12:29 19056 2019-12-23 06:12:29 14585 2019-12-23 06:12:29 10003 2019-12-23 06:12:29 15521 2019-12-23 06:12:29 12853 2019-12-23 06:12:29 15755 2019-12-23 06:12:29 11276 2019-12-23 06:12:29 14950 2019-12-23 06:12:29 18219 2019-12-23 06:12:29
wc.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object wc {
def main(args: Array[String]): Unit = {
//指定为root用户
System.setProperty("HADOOP_USER_NAME", "root")
//获取conf文件
val conf = new SparkConf()
//项目名
.setAppName("wc")
//允许本地运行
.setMaster("local")
//获取上下文
val sc = new SparkContext(conf)
//hdfs上获取源文件
//14816 2019-12-23 06:12:30
//14816 2019-12-23 06:12:30
//11077 2019-12-23 06:12:30
val lines = sc.textFile("hdfs://10.0.0.20:8020/goods.txt")
//以\t进行拆分,获取第一个索引
//14816
//14816
//11077
val words = lines.map(_.split("\t")(0))
//每个索引末尾加1
//(14816,1)
//(14816,1)
//(11077,1)
val tulp = words.map((_,1))
//key相同的进行累加
//(14816,2)
//(11077,1)
val re = tulp.reduceByKey(_+_)
//将k和v调换位置,再将k降序排序"false"再调换k和v
val jx = re.map(x => (x._2,x._1)).sortByKey(false ).map(x => (x._2,x._1))
//转为字符串以\t进行分割
//14816 2
//11077 1
val str = jx.map( x=> {x._1 + "\t" + x._2})
//结果输出到hdfs上
str.saveAsTextFile("hdfs://10.0.0.20:8020/sp/wc2")
}
}
结果
