柚子快報(bào)邀請(qǐng)碼778899分享:c# Spark實(shí)戰(zhàn):詞頻統(tǒng)計(jì)
柚子快報(bào)邀請(qǐng)碼778899分享:c# Spark實(shí)戰(zhàn):詞頻統(tǒng)計(jì)
文章目錄
一、Spark實(shí)戰(zhàn):詞頻統(tǒng)計(jì)(一)Scala版1、分步完成詞頻統(tǒng)計(jì)2、一步搞定詞頻統(tǒng)計(jì)
(二)Python版1、分步完成詞頻統(tǒng)計(jì)2、一步搞定詞頻統(tǒng)計(jì)
二、實(shí)戰(zhàn)總結(jié)
一、Spark實(shí)戰(zhàn):詞頻統(tǒng)計(jì)
(一)Scala版
1、分步完成詞頻統(tǒng)計(jì)
(1)基于文本文件創(chuàng)建RDD
執(zhí)行命令:val lines = sc.textFile("/home/test.txt")
(2)按空格拆分作扁平化映射
執(zhí)行命令:val words = lines.flatMap(_.split(" "))
(3)將單詞數(shù)組映射成二元組數(shù)組
執(zhí)行命令:val tuplewords = words.map((_, 1))
(4)將二元組數(shù)組按鍵歸約
執(zhí)行命令:val wordcount = tuplewords.reduceByKey(_ + _)
(5)將詞頻統(tǒng)計(jì)結(jié)果按次數(shù)降序排列
執(zhí)行命令:val sortwordcount = wordcount.sortBy(_._2, false)
2、一步搞定詞頻統(tǒng)計(jì)
執(zhí)行命令:sc.textFile("/home/test.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).sortBy(_._2, false).collect.foreach(println)
(二)Python版
1、分步完成詞頻統(tǒng)計(jì)
(1)基于文本文件創(chuàng)建RDD
執(zhí)行命令:lines = sc.textFile("/home/test.txt")
(2)按空格拆分作扁平化映射
執(zhí)行命令:words = lines.flatMap(lambda line : line.split(' '))
(3)將單詞數(shù)組映射成二元組數(shù)組
執(zhí)行命令:tuplewords = words.map(lambda word : (word, 1))
(4)將二元組數(shù)組按鍵歸約
執(zhí)行命令:wordcount = tuplewords.reduceByKey(lambda a, b : a + b)
(5)將詞頻統(tǒng)計(jì)結(jié)果按次數(shù)降序排列
執(zhí)行命令:sortwordcount = wordcount.sortBy(lambda wc : wc[1], False)
2、一步搞定詞頻統(tǒng)計(jì)
執(zhí)行命令
for line in sc.textFile('/home/test.txt').flatMap(lambda line : line.split(' ')).map(lambda word : (word, 1)).reduceByKey(lambda a, b : a + b).sortBy(lambda tup : tup[1], False).collect():
print(line)
二、實(shí)戰(zhàn)總結(jié)
在Spark實(shí)戰(zhàn)中,我們通過(guò)Scala和Python兩個(gè)版本分別實(shí)現(xiàn)了詞頻統(tǒng)計(jì)的功能。首先,我們從文本文件中創(chuàng)建了RDD,然后按空格拆分進(jìn)行扁平化映射,接著將單詞數(shù)組映射成二元組數(shù)組,之后對(duì)二元組數(shù)組進(jìn)行按鍵歸約,最后將詞頻統(tǒng)計(jì)結(jié)果按次數(shù)降序排列。在分步實(shí)現(xiàn)的基礎(chǔ)上,我們還可以通過(guò)一步命令直接完成整個(gè)流程。通過(guò)這次實(shí)戰(zhàn),我們對(duì)Spark的基本操作有了更深入的了解,為后續(xù)的學(xué)習(xí)和實(shí)踐打下了基礎(chǔ)。
柚子快報(bào)邀請(qǐng)碼778899分享:c# Spark實(shí)戰(zhàn):詞頻統(tǒng)計(jì)
相關(guān)文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。