spark 詞頻統計
阿新 • • 發佈:2020-08-20
spark 詞頻統計
package com.imooc.bigdata.chapter02 import org.apache.spark.{SparkConf, SparkContext} /** * 詞頻統計案例 * 輸入:檔案 * 需求:統計出檔案中每個單詞出現的次數 * 1)讀每一行資料 * 2)按照分隔符把每一行的資料拆成單詞 * 3)每個單詞賦上次數為1 * 4)按照單詞進行分發,然後統計單詞出現的次數 * 5)把結果輸出到檔案中 * 輸出:檔案 */ object SparkWordCountApp { /** * master: 執行模式,local * */ def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local").setAppName("SparkWordCountApp") val sc = new SparkContext(sparkConf) // Spark特性:提供了80+高階API val rdd = sc.textFile("E:\\06-work\\03-java\\01-JavaCodeDome\\SparkSqlCode\\sparksql-train\\data\\input.txt") /** * 結果按照單詞的出現的個數的降序排列 */ rdd.flatMap(_.split(" ")).map(word => (word, 1)) .reduceByKey(_+_).map(x => (x._2, x._1)).sortByKey(false) .map(x=> (x._2, x._1)) .saveAsTextFile("E:\\06-work\\03-java\\01-JavaCodeDome\\SparkSqlCode\\sparksql-train\\data\\out") //.collect().foreach(println) //.sortByKey().collect().foreach(println) //.saveAsTextFile("file:///Users/rocky/IdeaProjects/imooc-workspace/sparksql-train/out") //.collect().foreach(println) //rdd.collect().foreach(println) sc.stop() } }