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")
}
}
结果