Pig 是在Apache Hodoop 上的分析工具,主要是利用一種類似程式語言的方式來進行資料分析,而在分析前呢,所有的檔案都必須先放到HDFS 的檔案系統中呢才能使用。本影片主要有以下幾個單元,讓各位初學者可以用淺顯易懂的方式,來了解Pig的指令操作,希望各位朋友能夠透過這部影片了解到大數據之美。
[常見pig指令]
pig 進入pig cli
[將資料載入進變數]
變數 = LOAD 'path' USING PigStorage ('\t') ;
變數 = LOAD 'path' as (欄位:型態);
[查詢資料表Schema]
describe 變數;
[顯示資料]
dump 變數;
[執行pig程式]
pig -f 檔案位置.pig
[FOREACH] 取得每一筆資料
[查詢特定的欄位]
變數 = FOREACH 變數 GENERATE 欄位;
[新增欄位]
變數 = FOREACH 變數 GENERATE 欄位,999;
[欄位轉型]
變數 = FOREACH 變數 GENERATE (型態)$0;
[欄位重新命名]
變數 = FOREACH 變數 GENERATE $0 as 欄位名稱;
[欄位重新命名與轉型]
變數 = FOREACH 變數 GENERATE $0 as 欄位名稱:型態;
[TOTUPLE]
將Fields 組合成Tuples
變數 = FOREACH 變數 GENERATE TOTUPLE(欄位名稱A,欄位名稱B);
[FLATTEN]
1.將Tuples 拆散成 Fields
2.將Group的資料還原成原始的資料
變數 = FOREACH 變數 GENERATE FLATTEN(欄位名稱);
[過濾資料-一般模式]
變數 = FILTER 變數 BY (條件);
[過濾資料-正則表示式]
變數 = FILTER 變數 BY [欄位] MATCHES [正則表示式];
[群組資料]
變數 = GROUP 變數 BY [欄位];
[相關函數]
COUNT()
MAX()
SUM()
AVG()
變數 = GROUP 變數 ALL;
[資料排序]
變數 = ORDER 變數 BY [欄位] [ASC|DESC];
ASC (小 > 大)
DESC (大 > 小)
joinTableGroupCount = ORDER joinTableGroupCount BY UserCount DESC;
[顯示前n筆資料]
joinTableGroupCount = LIMIT joinTableGroupCount 5;
[LEFT OUTER JOIN]
變數 = JOIN 變數A BY 欄位 LEFT OUTER,變數B BY 欄位;