這篇文章主要講解了“HIVE實(shí)現(xiàn)wordcount的過程”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“HIVE實(shí)現(xiàn)wordcount的過程”吧!
10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有運(yùn)河免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1、建表并關(guān)聯(lián)數(shù)據(jù):
進(jìn)入hive命令行:
hive
執(zhí)行:
create external table wordcounts(line string) row format delimited fields terminated by '\n' stored as textfile location '/input/wordcount';
2、創(chuàng)建ruozedata.txt文件,并上傳hdfs中的/input/wordcount目錄下。
vi ruozedata.txt
hello,ruoze
hello,jepsondb
hello,www.ruozedata.com
hi,man
hi,gril
上傳命令:hdfs dfs -put ruozedata.txt /input/wordcount
3、進(jìn)入HIVE,查詢是否已經(jīng)將數(shù)據(jù)關(guān)聯(lián)到表中
select * from wordcounts;
4、進(jìn)入HIVE,進(jìn)行拆分,把每行數(shù)據(jù)拆分成單詞,這里需要用到一個(gè)hive的內(nèi)置表生成函數(shù)(UDTF):explode(array),參數(shù)是array,其實(shí)就是行變多列:
split是拆分函數(shù),與java的split功能一樣,這里是按照逗號拆分,再對子查詢中的結(jié)果進(jìn)行g(shù)roup by word,執(zhí)行完hql語句如下:
select word, count(*) from (select explode(split(line, ",")) as word from wordcounts) t group by word;
總結(jié):hive比較簡便,對于比較復(fù)雜的統(tǒng)計(jì)操作可以建一些中間表。
感謝各位的閱讀,以上就是“HIVE實(shí)現(xiàn)wordcount的過程”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對HIVE實(shí)現(xiàn)wordcount的過程這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!