使用Hive處理WordCount
一.在Hive中建立存放要處理的資料的表
$hive> create table textlines(line string)
匯入資料:
$hive> load data inpath ’tmp/input’ overwrite into table textlines;
如果想從本地匯入,可以使用這個load data local inpath '...',這裡的就會是這樣的/tmp/input/wordcount。
檢視是否匯入成功:
$hive> select * from texlines;
二.用HIVE實現map/reduce的計算
下面是HIVE程式設計指南給出的word count HQL:
SELECT word,count(1) AS count FROM (SELECT explode(split(,'[ \t]+') ) AS word FROM docs ) w GROUP BY word ORDER BY word;
我講上面語句拆分成兩條語句:
SELECT explode(split(line,’\s’)) AS word FROM docs;
SELECT word,count(1) FROM w GROUP BY word ORDER BY word;
所以我先建立一個words表,存放第一條查詢的結果:
$hive> create table words(word STRING);
$hive> insert overwrite table words select explode(split(line,'\s’)) word from textlines;
注:關鍵語句是select explode(split(line,'\s’)) 這句將處罰Hadoop進行MapReduce計算,explode()函式表示將字串分割為陣列,\s是正則,表示空白字元,split(line,'\s’)就是將line(textiles表的欄位)按照正則\s分割,然後explode函式將KEY相同的value存在陣列裡。這HQL條語句相當於Hadoop中的Map函式。
現在來處理第二條HQL語句:SELECT word,count(1) FROM w GROUP BY word ORDER BY word;
$hive> SELECT word,count(1) FROM words GROUP BY word ORDER BY word;
注:這條語句相當於Hadoop中的reduce函式。
三.將我們處理獲得的結果匯出:
$hive> INSERT OVERWRITE LOCAL DIRECTORY ‘/tmp/wordcount_result’ SELECT word,count(1) FROM words GROUP BY word ORDER BY word;
LOCAL去掉表示匯出到HDFS的目錄;
下面就用Sqoop將HDFS上的結果儲存到mysql上了
相關文章
- HIVE實現wordcount過程Hive
- Hive 日期處理Hive
- Hive處理Json資料HiveJSON
- hive初始化、處理流程詳解Hive
- 使用MapReduce執行WordCount案例
- Hive篇---Hive使用優化Hive優化
- Hive理論基礎Hive
- MySQL使用Batch批量處理MySqlBAT
- hadoop wordcountHadoop
- 不care工具,在大資料平臺中Hive能自動處理SQL大資料HiveSQL
- 使用Excel高效處理資料Excel
- 使用openpyxl處理表格資料
- 使用FFmpeg處理音視訊
- 使用JAXB處理JAVA和XMLJavaXML
- 使用CSS前處理器LessCSS
- 使用Java處理大檔案Java
- 使用PHP錯誤處理 (轉)PHP
- 使用IDEA+Maven實現MapReduce的WordCount功能IdeaMaven
- Spark儲存Parquet資料到Hive,對map、array、struct欄位型別的處理SparkHiveStruct型別
- hive dynamic partition的使用Hive
- [Hive]Union使用指南Hive
- hive中partition如何使用Hive
- Hive JOIN使用詳解Hive
- 【HIVE】hive 使用shell指令碼跑歷史資料Hive指令碼
- 使用Preprocessor前處理器語句對外部表進行介入處理
- [譯] 使用 Catcher 處理 Flutter 錯誤Flutter
- .net 預處理指令符的使用
- 影象處理庫GPUImage簡單使用GPUUI
- Ajax 處理時進度條使用
- Laravel 使用 Intervention/image 處理圖片Laravel
- Java 異常處理:使用和思考Java
- 如何使用awk處理文字內容
- (譯)使用CoordinatorLayout處理滾動
- Calcite 使用原生的RDD 處理SparkSpark
- 使用 canvas 對影象進行處理Canvas
- 使用 getopt() 進行命令列處理命令列
- 使用 Python 處理 CSV 檔案Python
- Storm實戰之WordCountORM