土芭樂數位學堂

BigData 大數據分析、資訊技術的分享, TiddlyWiki教學, Google 服務應用教學, 3D列印創意思維

3月 16, 2023

ETL資料處理萃取及載入

各位大家好!
今天要與各位分享如何將下載的資料集,在Linux先做簡單的ETL處理(註1),而後再進一步放進Hadoop做數據分析:

註1:ETL,是英文Extract-Transform-Load的縮寫,用來描述將資料從來源端經過萃取(extract)、轉置(transform)、載入(load)至目的端的過程。 ETL一詞較常用在資料倉儲,但其物件並不限於資料倉儲。(以上註1資料來源:維基百科

步驟一、首先將資料從「開放平台」下載至作業系統上
以美國電影資料集 movies_data.csv 為例,如下:
$ wget https://raw.githubusercontent.com/rohitsden/pig-tutorial/master/movies_data.csv


其他電影資料集二:https://gist.githubusercontent.com/tiangechen/b68782efa49a16edaf07dc2cdaa855ea/raw/0c794a9717f18b094eabab2cd6a6b9a226903577/movies.csv
欄位說明:https://gist.github.com/tiangechen/b68782efa49a16edaf07dc2cdaa855ea

其他電影資料集三: https://raw.githubusercontent.com/fragmadata/MovieDataset/master/movies.csv

政府開放平台資料集:
台灣全國電影院資料集網頁:https://data.gov.tw/dataset/22213
電影片分級及相關資訊:https://data.gov.tw/dataset/59820

步驟二、檢視資料集(先觀察資料及欄位,確認是否有異常值或人為備註或說明)
$ head -n 6 movies_data.csv
$ tail -n 1 movies_data.csv


步驟三、簡易過濾不要的資料,萃取必需的原始資料(Extract)並轉置成檔案(Transform

$ cat movies_data.csv | grep 'Top Gun' > movies01.csv
$ cat movies_data.csv | grep '2000' > movies2000.csv


註2:關於Linux的grep命令,可以參考「鳥哥的LINUX私房菜」書籍或至「鳥哥私房菜」官網,查詢參數正規化相關指令的應用。

步驟四、將過濾後的數據資料放到Hadoop

grunt> copyfromlocal movies2000.csv   .
grunt> ls


註3:步驟1~4是屬於ETL,至於儲存到Hadoop的其他方法,會於課堂上分享。

步驟五、再從Hadoop將資料取出,使用分析工具定義數據資料型態

grunt> movies = LOAD 'movies2000.csv'
USING PigStorage(',') AS
(id:int,name:chararray,year:int,rating:float,duration:int);


步驟六、顯示要看的資料筆數「五筆」

grunt> limit5 = LIMIT movies 5;
grunt> dump limit5;




實務操作練習一

實務操作練習二

,

沒有留言:

張貼留言