寒假學習進度2
今天接著昨天spark學習
使用spark自己自帶的函式完成對文字中的單詞統計,昨天程式碼的進階版
程式碼:package com.chenghaixiang.core.wc
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object spark02_wordcount {
def main(args: Array[String]): Unit = {
// 建立 Spark 執行配置物件
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount")
// 建立 Spark 上下文環境物件(連線物件)
val sc : SparkContext = new SparkContext(sparkConf)
// 讀取檔案資料
val fileRDD: RDD[String] = sc.textFile("D:\\qq text\\1791028291\\FileRecv\\《飄》英文版.txt")
// 將檔案中的資料進行分詞
val wordRDD: RDD[String] = fileRDD.flatMap( _.split(" ") )
// 轉換資料結構 word => (word, 1)
val word2OneRDD: RDD[(String, Int)] = wordRDD.map((_,1))
// 將轉換結構後的資料按照相同的單詞進行分組聚合
val word2CountRDD: RDD[(String, Int)] = word2OneRDD.reduceByKey(_+_)
// 將資料聚合結果採集到記憶體中
val word2Count: Array[(String, Int)] = word2CountRDD.collect()
// 列印結果
word2Count.foreach(println)
//關閉 Spark 連線
sc.stop()
}
}
spark本地模式測試:
首先安裝spark到linux上
上傳
到linux上
解壓
啟動spark
輸入網址看是否能登入
在spark本地上看是否能執行
spark上提交應用: