下載資料
wget
檢視資料
- 查看前N筆資料
head -n N [file_name]
- 查看後N筆資料
tail -n N [file_name]
- 尋找含關鍵字的資料
`grep ["key_word"] [file_name]
啟動pig
pig
建立資料夾
mkdir [資料夾名稱]
將檔案放到pig裡面
copyfromlocal [檔案名稱] [資料夾名稱] --這個指令等同於 --> hdfs dfs -put [檔案名稱] [資料夾位置]
載入 & 分析檔案
- 用變數載入檔案
[代號_載入檔案名稱] = LOAD ["檔案位置"] USING PigStorage(',');
- 篩選
[代號_篩選資料] = FILTER [檔案名稱] BY (float)$[欄位]>[條件];
- 撰寫 -> 編譯 -> 執行 -> 顯示
dump [代號_篩選資料];
- ex :
grunt> movies = LOAD '/dataset/movies_data.csv' USING PigStorage(',');
grunt> a = FILTER movies BY (float)$3>2.0;
grunt> dump a;
篩選指令整理
FILTER
[代號] = FILTER [代號] BY ([表達式]) and ([表達式]) ;
GROUP
[代號] = GROUP [代號] BY [欄位];
ORDER
[代號] = ORDER [代號] BY [欄位] [ASC|DESC];
只取得前N筆資料
limit [代號_檔案] [筆數];
FOREACH
[代號] = FOREACH [代號] GENERATE [欄位], [欄位], [欄位], ...;
在pig環境外編輯及執行pig指令
- 建立文件
nano [pig檔案名稱]
- 編輯檔案
- 執行
pig [檔案名稱]
- 如果只想看到結果,不想看到錯誤指令
pig [檔案名稱] 2>/dev/null ( 2>/dev/null 可以把垃圾訊息丟進黑洞 )
為什麼執行速度很慢???
下載資料
wget檢視資料
head -n N [file_name]tail -n N [file_name]`grep ["key_word"] [file_name]
啟動pig
pig建立資料夾
mkdir [資料夾名稱]將檔案放到pig裡面
copyfromlocal [檔案名稱] [資料夾名稱]--這個指令等同於 -->hdfs dfs -put [檔案名稱] [資料夾位置]載入 & 分析檔案
[代號_載入檔案名稱] = LOAD ["檔案位置"] USING PigStorage(',');[代號_篩選資料] = FILTER [檔案名稱] BY (float)$[欄位]>[條件];dump [代號_篩選資料];grunt> movies = LOAD '/dataset/movies_data.csv' USING PigStorage(',');
grunt> a = FILTER movies BY (float)$3>2.0;
grunt> dump a;
篩選指令整理
FILTER
[代號] = FILTER [代號] BY ([表達式]) and ([表達式]) ;GROUP
[代號] = GROUP [代號] BY [欄位];ORDER
[代號] = ORDER [代號] BY [欄位] [ASC|DESC];只取得前N筆資料
limit [代號_檔案] [筆數];FOREACH
[代號] = FOREACH [代號] GENERATE [欄位], [欄位], [欄位], ...;在pig環境外編輯及執行pig指令
nano [pig檔案名稱]pig [檔案名稱]pig [檔案名稱] 2>/dev/null(2>/dev/null可以把垃圾訊息丟進黑洞 )為什麼執行速度很慢???