在/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.準備電子書或其它大的文字檔...