Spark——統計文本中單詞出現的次數


示例一:統計所有單詞出現的次數

1、在本地創建文件並上傳到hdfs中

#vin data.txt
//將文件上傳到hadoop的根目錄下
#hdfs dfs -put data.txt  /

2、在spark中,創建一個RDD並讀取文件

%spark
var data = sc.textFile("/data.txt")
data.collect

3、將讀取到的文本使用flatMap方法(數據流映射)組合split方法拆分為單個單詞

//注意:split("")引號中沒有空格是以單個字母的形式拆分
val splitData = data.flatMap(line => line.split(" ")) splitData.collect

4、對每個單詞執行映射k-value,k是具體的單詞,value都設置為1

var mapData = splitData.map(word => (word,1))
mapData.collect

5、使用reduceByKey()方法進行聚合累加並輸出結果

var reduceData = mapData.reduceByKey(_+_)
reduceData.collect

示例二:統計指定單詞出現的次數

//統計本文中"is"出現的次數
data.filter(line => line.contains("is")).count()

示例三:(更復雜的RDD操作)找到文本的一行中最多的單詞數量

data.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b)

 tip:對於大型數據,可以將數據先加入緩存

例如:
data.cache() data.count()

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM