Hadoop : Pig 語法與基本概念介紹

  • 2346
  • 0

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 欄位;