1. 程式人生 > >spark 例子wordcount topk

spark 例子wordcount topk

分組 input MF 詞頻 RR reduce get 讀取數據 print

spark 例子wordcount topk


例子描述:

【單詞計算wordcount 】
【詞頻排序topk】

單詞計算在代碼方便很簡單,基本大體就三個步驟

  • 拆分字符串
  • 以需要進行記數的單位為K,自己拼個數字1為V,組成一個映射或者元組
  • 分組(groupByKey)

詞頻排序

  • 將分組後的數據進行排序

代碼片段:

/* 單詞計算wordcount */

val input = Source.fromFile("E:/test.txt").getLines.toArray

val wc = sc.parallelize(input)       /* spark單機讀取數據 */
.flatMap(_.split(" "))               /* 拆分數據,以空格為拆分條件 */
.map((_,1))                          /* 將拆分的每個數據為K,自己創建個1為V */
.reduceByKey(_+_)                    /* 這裏我喜歡叫分組 */
.foreach(println)                    /* 輸出 */
/* 詞頻排序topk */

val input = Source.fromFile("E:/test.txt").getLines.toArray

val topk = sc.parallelize(input)     /* spark單機讀取數據 */
.flatMap(_.split(" "))               /* 拆分數據,以空格為拆分條件 */
.map((_, 1))                         /* 將拆分的每個數據為K,自己創建個1為V */
.reduceByKey(_+_)                    /* 這裏我喜歡叫分組 */
.sortBy(_._2,false)                  /* 根據分組後數據第2位數據進行排序 */
.take(5)                             /* 只取前5位 */
.foreach(println)                    /* 輸出 */

spark 例子wordcount topk