HADOOP的PIG框架

我叫阿狸貓發表於2014-01-05

Pig框架簡介

1.Pig是基於hadoop的一個資料處理的框架。

  MapReduce是使用java進行開發的,Pig有一套自己的資料處理語言,Pig的資料處理過程要轉化為MapReduce來執行。
2.Pig的資料處理語言是資料流方式的,類似於初中做的數學題。
3.Pig基本資料型別:int、long、float、double、chararry、bytearray
        複合資料型別:Map、Tuple、Bag  
        Bag的型別如{('age',31),('name','張三')}

Pig框架搭建
4.如何安裝Pig
4.1 把pig-0.11.1.tar.gz複製到/usr/local下
4.2 使用命令tar -zxvf  pig-0.11.1.tar.gz解壓縮
4.3 使用命令mv pig-0.11.1  pig 進行重新命名
4.4 編輯檔案vi /etc/profile 設定環境變數
        export PIG_HOME=/usr/local
        export PATH =......:$PIG_HOME/bin:$PATH....
        儲存,然後執行source  /etc/profile
4.5 編輯檔案$PIG_HOME/conf/pig.properties,增加兩行如下內容
        fs.default.name=hdfs://hadoop0:9000
        mapred.job.tracker=hadoop0:9001


用Pig框架分析移動終端上網流量的資料

5.對wlan資料如何使用pig進行分析處理

5.1 把待處理的資料上傳到HDFS中

5.2 把HDFS中的資料轉換為pig可以處理的模式
      首先進入PIG命令介面 輸入pig即可
      A = LOAD '/wlan' AS (t0:long, msisdn:chararray, t2:chararray, t3:chararray, t4:chararray, t5:chararray, t6:long, t7:long, t8:long, t9:long, t10:chararray);

      用DUMP A檢視結果


5.3 把裡面需要的欄位抽取出來
    B = FOREACH A GENERATE msisdn, t6, t7, t8, t9;

       用DUMP B檢視結果


5.4 分組資料
    C = GROUP B BY msisdn;(按照手機號進行分組)

    用DUMP C檢視結果


5.5 流量彙總

    這個group代表的是按照哪個欄位進行分組的  也就是說group代表了手機號,因為是按手機號分組的,按哪個分組group就代表哪個
    D = FOREACH C GENERATE group, SUM(B.t6), SUM(B.t7), SUM(B.t8), SUM(B.t9);

    用DUMP D檢視結果

    對比上圖13560439658這個手機的流量已經彙總


5.6 儲存到HDFS中
    STORE D INTO '/wlan_result';



5.7 按照手機號進行排序
     E = ORDER D BY  group;

     用DUMP E檢視結果


相關文章