<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    一個(gè)PIG腳本例子分析

    執(zhí)行腳本:
    PIGGYBANK_PATH=$PIG_HOME/contrib/piggybank/java/piggybank.jar
    INPUT=pig/input/test-pig-full.txt
    OUTPUT=pig/output/test-pig-output-$(date  +%Y%m%d%H%M%S)
    PIGSCRIPT=analyst_status_logs.pig

    #analyst_500_404_month.pig
    #
    analyst_500_404_day.pig
    #
    analyst_404_percentage.pig
    #
    analyst_500_percentage.pig
    #
    analyst_unique_path.pig
    #
    analyst_user_logs.pig
    #
    analyst_status_logs.pig


    pig -p PIGGYBANK_PATH=$PIGGYBANK_PATH -p INPUT=$INPUT -p OUTPUT=$OUTPUT $PIGSCRIPT


    要分析的數(shù)據(jù)源,LOG 文件
    46.20.45.18 - - [25/Dec/2012:23:00:25 +0100] "GET / HTTP/1.0" 302 - "-" "Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)" "-" "-" 46.20.45.18 "" 11011AEC9542DB0983093A100E8733F8 0
    46.20.45.18 - - [25/Dec/2012:23:00:25 +0100] "GET /sign-in.jspx HTTP/1.0" 200 3926 "-" "Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)" "-" "-" 46.20.45.18 "" 11011AEC9542DB0983093A100E8733F8 0
    69.59.28.19 - - [25/Dec/2012:23:01:25 +0100] "GET / HTTP/1.0" 302 - "-" "Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)" "-" "-" 69.59.28.19 "" 36D80DE7FE52A2D89A8F53A012307B0A 15


    PIG腳本:
    --注冊(cè)JAR包,因?yàn)橐玫紻ateExtractor
    register '$PIGGYBANK_PATH';

    --聲明一個(gè)短函數(shù)名
    DEFINE DATE_EXTRACT_MM 
    org.apache.pig.piggybank.evaluation.util.apachelogparser.DateExtractor('yyyy-MM');

    DEFINE DATE_EXTRACT_DD 
    org.apache.pig.piggybank.evaluation.util.apachelogparser.DateExtractor('yyyy-MM-dd');

    -- pig/input/test-pig-full.txt
    --把數(shù)據(jù)從變量所指的文件加載到PIG中,并定義數(shù)據(jù)列名,此時(shí)的數(shù)據(jù)集為數(shù)組(a,b,c)
    raw_logs = load '$INPUT' USING org.apache.pig.piggybank.storage.MyRegExLoader('^(\\S+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] "(\\S+) (\\S+) (HTTP[^"]+)" (\\S+) (\\S+) "([^"]*)" "([^"]*)" "(\\S+)" "(\\S+)" (\\S+) "(.*)" (\\S+) (\\S+)')
    as (remoteAddr: chararray, 
    n2: chararray, 
    n3: chararray, 
    time: chararray, 
    method: chararray,
    path:chararray,
    protocol:chararray,
    status: int, 
    bytes_string: chararray, 
    referrer: chararray, 
    browser: chararray, 
    n10:chararray,
    remoteLogname: chararray, 
    remoteAddr12: chararray, 
    path2: chararray, 
    sessionid: chararray, 
    n15: chararray
    );

    --過濾數(shù)據(jù)
    filter_logs = FILTER raw_logs BY not (browser matches '.*pingdom.*');
    --item_logs = FOREACH raw_logs GENERATE browser;

    --percent 500 logs
    --重定義數(shù)據(jù)項(xiàng),數(shù)據(jù)集只取2項(xiàng)status,month
    reitem_percent_500_logs = FOREACH filter_logs GENERATE status,DATE_EXTRACT_MM(time) as month;
    --分組數(shù)據(jù)集,此時(shí)的數(shù)據(jù)結(jié)構(gòu)為MAP(a{(aa,bb,cc),(dd,ee,ff)},b{(bb,cc,dd),(ff,gg,hh)})
    group_month_percent_500_logs = GROUP reitem_percent_500_logs BY (month);
    --重定義分組數(shù)據(jù)集數(shù)據(jù)項(xiàng),進(jìn)行分組統(tǒng)計(jì),此時(shí)要聯(lián)合分組數(shù)據(jù)集和原數(shù)據(jù)集統(tǒng)計(jì)
    final_month_500_logs = FOREACH group_month_percent_500_logs 
    {
        --對(duì)原數(shù)據(jù)集做count,因?yàn)槭窃趂oreachj里做count的,即使是對(duì)原數(shù)據(jù)集,也會(huì)自動(dòng)會(huì)加month==group的條件
        --從這里可以看出對(duì)于group里的數(shù)據(jù)集,完全沒用到
        --這時(shí)是以每一行為單位的,統(tǒng)計(jì)MAP中的KEY-a對(duì)應(yīng)的數(shù)組在原數(shù)據(jù)集中的個(gè)數(shù)
        total = COUNT(reitem_percent_500_logs);
        --對(duì)原數(shù)據(jù)集做filter,因?yàn)槭窃趂oreachj里做count的,即使是對(duì)原數(shù)據(jù)集,也會(huì)自動(dòng)會(huì)加month==group的條件
        --重新過濾一下原數(shù)據(jù)集,得到status==500,month==group的數(shù)據(jù)集
        t = filter reitem_percent_500_logs by status== 500; --create a bag which contains only T values
        --重定義數(shù)據(jù)項(xiàng),取group,統(tǒng)計(jì)結(jié)果
        generate flatten(group) as col1, 100*(double)COUNT(t)/(double)total;
    }
    STORE final_month_500_logs into '$OUTPUT' using PigStorage(',');

    posted on 2013-04-13 15:21 paulwong 閱讀(2309) 評(píng)論(0)  編輯  收藏 所屬分類: 分布式 、HADOOP 、云計(jì)算 、PIG

    主站蜘蛛池模板: 国产在线19禁免费观看国产| 欧美日韩国产免费一区二区三区| 99久热只有精品视频免费看| 在线看片免费人成视久网| 69式国产真人免费视频| 成人免费一区二区无码视频| 国产伦一区二区三区免费| 国产专区一va亚洲v天堂| 亚洲AV乱码一区二区三区林ゆな | 亚洲综合久久精品无码色欲| 亚洲av无码专区青青草原| 一个人晚上在线观看的免费视频 | 国产在线观看免费视频软件| 99re6在线精品视频免费播放| 人禽杂交18禁网站免费| 亚洲 另类 无码 在线| 亚洲av永久无码精品国产精品| 亚洲小视频在线播放| 妇女自拍偷自拍亚洲精品| 免费看成人AA片无码视频吃奶| 成人免费观看一区二区| 免费乱理伦在线播放| 久久亚洲春色中文字幕久久久| 亚洲欧美成人av在线观看| 久久久精品国产亚洲成人满18免费网站 | 四虎影视精品永久免费网站| 久久亚洲高清观看| 亚洲娇小性色xxxx| av片在线观看永久免费| 国产成人免费高清激情明星| 啊灬啊灬别停啊灬用力啊免费看| 亚洲AV无码一区二区二三区软件 | 国产成人亚洲精品| 国产激情久久久久影院老熟女免费| 99精品国产成人a∨免费看| 国产精品嫩草影院免费| 亚洲AV色香蕉一区二区| 亚洲av日韩专区在线观看| 久久精品免费视频观看| 永久中文字幕免费视频网站| 亚洲国产精品va在线播放|