任務03 Hive詞頻統計

2022-07-08 12:09:10 字數 2199 閱讀 2546

在/root目錄下新建word.txt

輸入幾行單詞,單詞之間以空格隔開

hello hadoop

hello hdfs

hello mapreduce

hello hive

hello hbase

hello pig

對於這個text表,我們如何將其中的每行的單詞進行統計呢?

由於一行文字有多個單詞,所以我們需要將每行的文字切割成單個的單詞,這裡我們需要使用split函式:

每行文字已經被切割開來,但是得到的是陣列型別,並不是hive能直接通過group by處理的形式,所以我們需要使用hive的另乙個高階函式explode。

explode函式的功能是行轉列(俗稱炸裂),也就是說將上面我們得到的陣列中的每個元素生成一行。

使用group by來對炸裂開來的資料進行統計。

將上面得到的結果作為另一張表t(子查詢),然後對這張表進行統計。

將所有單詞按照降序排列,同時輸出最高頻次的三個單詞

將查詢結果存入另一張表wc中。

檢視wc表

本實驗介紹了如何通過hive實現單詞統計,旨在加深了解hive這個基於hdfs的資料倉儲。

在/root目錄下新建word.txt

輸入幾行單詞,單詞之間以空格隔開

hello hadoop

hello hdfs

hello mapreduce

hello hive

hello hbase

hello pig

load data local inpath '/root/word.txt' overwrite into table text;
select * from text;
對於這個text表,我們如何將其中的每行的單詞進行統計呢?

由於一行文字有多個單詞,所以我們需要將每行的文字切割成單個的單詞,這裡我們需要使用split函式:

select split(line,' ') from text;
每行文字已經被切割開來,但是得到的是陣列型別,並不是hive能直接通過group by處理的形式,所以我們需要使用hive的另乙個高階函式explode。

explode函式的功能是行轉列(俗稱炸裂),也就是說將上面我們得到的陣列中的每個元素生成一行。

select explode(split(line,' ')) as word from text;
使用group by來對炸裂開來的資料進行統計。

將上面得到的結果作為另一張表t(子查詢),然後對這張表進行統計。

select t.word,count(*) from (select explode(split(line,' '))as word from text) as t group by t.word;
將所有單詞按照降序排列,同時輸出最高頻次的三個單詞

select t.word,count(*) as c from (select explode(split(line,' '))as word from text) as t group by t.word order by c desc limit 3;
將查詢結果存入另一張表wc中。

create table wc as select t.word,count(*) c from (select explode(split(line,' '))as word from text) as t group by t.word order by c desc limit 3;
檢視wc表

本實驗介紹了如何通過hive實現單詞統計,旨在加深了解hive這個基於hdfs的資料倉儲。

Hive實現詞頻統計

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

Hive 操作與應用 詞頻統計

一 hive用本地檔案進行詞頻統計 1.準備本地txt檔案 2.啟動hadoop,啟動hive 3.建立資料庫,建立文字表同時對映本地檔案的資料到文字表中 4.hql語句進行詞頻統計交將結果儲存到結果表中。5.儲存並且檢視統計結果 二 hive用hdfs上的檔案進行詞頻統計 1.準備電子書或其它大的...

Hive 操作與應用 詞頻統計

一 hive用本地檔案進行詞頻統計 1.準備本地txt檔案 2.啟動hadoop,啟動hive 3.建立資料庫,建立文字表 4.對映本地檔案的資料到文字表中 5.hql語句進行詞頻統計交將結果儲存到結果表中。6.檢視統計結果 二 hive用hdfs上的檔案進行詞頻統計 1.準備電子書或其它大的文字檔...