import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object SprakWordCount { def main(args: Array[String]): Unit = { //参数检查 if (args.length < 2) { System.err.println("Usage: myWordCount <input> <output>") System.exit(1) } //设置spark配置 val conf: SparkConf = new SparkConf().setAppName("myWordCount") //.setMaster("local[*]") // val sc:SparkContext=new SparkContext(conf) //读取输入数据 s val lines=sc.textFile(args(0)) //处理数据 //切分压平 val words: RDD[String] = lines.flatMap(_.split(",")) //将单词和1组合在一起 让每个单词1都出现一次 val wordone: RDD[(String, Int)] = words.map((_, 1)) //聚合 单词计数 //在一个(K,V)的RDD上调用,返回一个(K,V)的RDD,使用指定的reduce函数, // 将相同key的值聚合到一起,与groupByKey类似, // reduce任务的个数可以通过第二个可选的参数来设置 val reduced: RDD[(String, Int)] = wordone.reduceByKey(_ + _) //排序 按照单词出现的次数 降序排序 val ans = reduced.sortBy(_._2, false) ans.saveAsTextFile(args(1)) // println(ans.collect().toBuffer) //关闭 sc.stop() } }
spark wordcount
最新推荐文章于 2024-05-07 20:00:00 发布