用Hive實現MapReduce的單詞統計

2021-08-18 00:14:35 字數 1049 閱讀 5131

乙個簡單的單詞統計在用mapreduce來實現雖然是經典用例,但是現實起來還是比較複雜的。

下面介紹如何用hive來實現單詞統計。

首先準備乙個記錄單詞的word.txt

然後在hive中新建乙個表

並將word.txt的資料匯入到該表中

然後執行如下的命令

select tt.wordtxt,count(*) cc from ( select explode(split(line,' ')) as wordtxt from word) as tt group by wordtxt sort by cc desc ;
結果如下

其中對該命令進行分析:

select tt.wordtxt,count(*) cc from ( select explode(split(line,' ')) as wordtxt from word) as tt group by wordtxt sort by cc desc ;
select explode(split(line,' ')) as wordtxt from word
不能直接對wordtxt進行group by,因為這個wordtxt不是列屬性,所以需要在外面將這個表設定為as tt作為乙個表,而此時wordtxt作為tt表的乙個屬性,這樣才能進行group by。

hive正則查詢會不會走MapReduce

話題 話不多說,咱們直奔主題,我們都知道hive查詢過程中,一些類似select a from a 這樣的語句是不會觸發mapreduce的,但是最近在使用正則regexp做查詢時偶然發現了乙個新玩兒法。不走mr寫法 正則匹配某個欄位的特定值時,在sql最後加乙個limit的限定,是不走mr的,如下...

Hive實現詞頻統計

hive中提供了類似於sql語言的查詢語言 hiveql,可以通過 hiveql語句快速實現簡單的 mapreduce統計,hive 自身可以將 hiveql 語句快速轉換成 mapreduce 任務進行執行,而不必開發專門的 mapreduce 應用程式,因而十分適合資料倉儲的統計分析。通過乙個簡...

hive 實現增量更新

保險公司有乙個表記錄客戶的資訊,其中包括有客戶的id,name和age 為了演示只列出這幾個字段 建立hive的表 create table customer id int,age tinyint,name string partitioned by dt string row format del...