在pig中, dump和store会分别完毕两个MR, 不会一起进行

1:载入名用正則表達式:

LOAD '/user/wizad/data/wizad/raw/2014-0{6,7-0,7-1,7-2,7-3,8}*/3_1/adwords*'

2:filter的几种简单使用方法:

按值过滤

FILTER clickDate_all BY log_type=='2';

FILTER mapping_table BY mapping_ad_network_id=='3' AND mapping_type=='5';

test =FILTER allRow BY (ad_id=='14997' OR ad_id=='14998' OR ad_id=='14999') AND log_type==2;

test=FILTER allRow BY (INDEXOF(ad_id,'14997')==0 OR INDEXOF(ad_id,'14998')==0 OR INDEXOF(ad_id,'14999')==0) AND log_type==2;

配合size函数

FILTER count_imei BY (SIZE(cimei)>14 AND SIZE(cimei)<17);

正則表達式

FILTER cimei2 BY NOT cimei MATCHES '^[0-9]*$';

FILTER cmac2 BY cmac MATCHES '/[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}/';

3:排序

ORDER province_count BY $2 DESC;





4:CONCAT函数的使用。可用于生成独立的一列,如count了的一个数,前面加一列名称

FOREACH origin_cleaned_data GENERATE CONCAT('<-_','->') AS cou,guid,log_type;

read_social_14 =FOREACH metadata_social_14 GENERATE CONCAT('14','=='),guid_social;

all_id =FOREACH allRow GENERATE id,CONCAT('_','-') as cc;

5:过滤空值,将空值改成取值unknown。

条件表达式“(推断式)?a:b”的应用:直接对列操作

origin_historical = FOREACH origin_cleaned_data GENERATE wizad_ad_id,guid,log_type,

((province_region_id == '') ? 'unknown' : province_region_id)



6:切分成不同子集,按值:

 SPLIT geelyTuiGuang INTO android IF os_id==1,ios IF os_id==2;

 SPLIT ios INTO ios6 IF (INDEXOF(os_version,'7')!=0),ios7 IF INDEXOF(os_version,'7')==0;

SPLIT allCleaned INTO log_42 IF (

((chararray)$34=='1' OR (chararray)$34=='2' OR (chararray)$34=='3' OR (chararray)$34=='1' OR (chararray)$34=='4')

AND

(INDEXOF((chararray)$35,'.')>0)

AND

((chararray)$36=='1' OR (chararray)$36=='')



),

log_43 IF (

((chararray)$34=='1' OR (chararray)$34=='2')

AND

((chararray)$35=='1' OR (chararray)$35=='2' OR (chararray)$35=='3' OR (chararray)$35=='1' OR (chararray)$35=='4')

AND

(INDEXOF((chararray)$36,'.')>0)

);

7:replace函数替换值

 FOREACH ios6 GENERATE imei,mac_address as cmac,REPLACE(idfa,'null','');



8:数据流过滤

en_guid =STREAM duimei THROUGH `awk -F"," '{if($3 == "null") print $1","$2","; else print $0}'`;

9:强制转换:

cleaned_data_42 =FOREACH log_42 GENERATE 

(chararray)$1  AS wizad_ad_id:chararray,

(chararray)$2  AS guid:chararray,

(chararray)$6  AS log_type:chararray,

(chararray)$18 AS imei:chararray,

(chararray)$22 AS idfa:chararray,

(chararray)$23 AS mac_address:chararray

10内置函数REGEX_EXTRACT,使用正則表達式:

allAdId =FOREACH allRow GENERATE REGEX_EXTRACT((chararray)$3,'(.*) (.*)',1) AS time,REGEX_EXTRACT((chararray)$0,'(.*)_(.*)',1) AS adn,$6 AS ad_id;



 allAdId =FOREACH allRow GENERATE REGEX_EXTRACT(create_time,'(.*) (.*)',1) AS time,ad_id;

pig中使用的一些实例语法的更多相关文章

  1. jQuery中index()方法用法实例

    本文实例讲述了jQuery中index()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以搜索匹配元素,并返回元素的索引值.索引值是从0开始的. 语法结构一: 当此方法没有参数的时候,返回值 ...

  2. jQuery中on()方法用法实例

    这篇文章主要介绍了jQuery中on()方法用法,实例分析了on()方法的功能.定义及在匹配元素上绑定一个或者多个事件处理函数的使用技巧,需要的朋友可以参考下 本文实例讲述了jQuery中on()方法 ...

  3. 第8.12节 Python类中使用__dict__定义实例变量和方法

    上节介绍了使用实例的__dict__查看实例的自定义属性,其实还可以直接使用__dict__定义实例变量和实例方法. 一. 使用__dict__定义实例变量 语法: 对象名. dict[属性名] = ...

  4. 第8.28节 Python中使用__setattr__定义实例变量和实例方法

    一. 引言 根据前面章节介绍的内容,我们知道实例变量.实例方法的定义可以通过以下方法进行: 在类体中直接定义实例变量.实例方法: 在实例方法中定义实例变量.实例方法: 在类体外调用方使用赋值语句赋值定 ...

  5. Bash 4.4 中新增的 ${parameter@operator} 语法

    Bash 4.4 中新增了一种 ${...} 语法,长这样:${parameter@operator}.根据不同的 operator,它展开后的值可能是 parameter 这个参数的值经过某种转换后 ...

  6. Scala 深入浅出实战经典 第45讲: scala中context bounds代码实例

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  7. Spring中IoC的入门实例

    Spring中IoC的入门实例 Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如 ...

  8. pig中变量

    pig中的变量都是找到$变量然后替换,有点像宏,完全就是替换,看如下例子 %default m 'you';b = load 'a' as (a:chararray);c = foreach b ge ...

  9. python中的类和实例

    今天花了两个多小时后搜索相关博客看了看python中有关类和实例的介绍,差不多大概明白了. python中的类和c++中的类是一样的,不同之处就是c++的类,如果含有成员变量,并且成员变量发生变化后, ...

随机推荐

  1. 控件编写:增强 TMEMO (一)(增加对WM_HSCROLL消息的处理)

    相信没有什么人对 MEMO 陌生了吧.尽管其组件的功能不错.但是,对它进行一些功能的改进,可以更好的使用. 有的时候,我们想要知道,当前的坐标是什么?甚至,想要在 滚动条滚动时触发一些事件. 但,TM ...

  2. find-a-jar-file-given-the-class-name

    Save this as findclass.sh (or whatever), put it on your path and make it executable: #!/bin/sh find ...

  3. javascript addEventListener方法

    addEventListener是一个侦听事件并处理相应的函数. DOM方法 addEventListener() 和 removeEventListener()是用来分配和删除事件的函数. 这两个方 ...

  4. C2B未来:大数据定制

    昨天看到微信SuperSofter写了一篇文章,有感而发.以便备记. 这是一种典型的C2B模式.阿里不仅仅是在与腾讯拼移动.它的电商本土业务也在稳步推进.近期一个里程碑事件是.阿里包下了美的.九阳.苏 ...

  5. 选择屏幕中的下拉框和dialog中下拉框设计

    REPORT  YTEST014. PARAMETERS: auart LIKE vapma-auart  AS LISTBOX   VISIBLE LENGTH 6. AT SELECTION-SC ...

  6. 深入理解 JBoss 7/WildFly Standalone 模式启动过程

    概述 JBoss 7/WildFly Standalone 模式启动过程大致例如以下: 启动脚本 standalone.sh 启动 JBoss Modules,JBoss Modules 启动 JBo ...

  7. 一切皆为 JavaScript

    JavaScript起源于Netscape公司的LiveScript语言,这是一种基于对象和事件驱动的client脚本语言.最初的设计是为了检验HTML表单输入的正确性. 早些年,JavaScript ...

  8. BZOJ 1212 HNOI 2004 L语言 Trie树

    标题效果:给一些词.和几个句子,当且仅当句子可以切子可以翻译词典,这意味着该子将被翻译. 找到最长前缀长度可以被翻译. 思维:使用Trie树阵刷.你可以刷到最长的地方是最长的字符串可以翻译到的地方. ...

  9. rsyslog+LogAnalyzer 日志收集

    Linux 之rsyslog+LogAnalyzer 日志收集系统 一.LogAnalyzer介绍 LogAnalyzer工具提供了一个易于使用,功能强大的前端,用于搜索,查看和分析网络活动数据,包括 ...

  10. cocos2d 游戏开发:Cocos2d v3 &quot;hello world&quot;+显示飞船

    V3 RC4 版本号图片 显示一个飞船 将Chapter1中 SpaceCargoShip.png 文件 加入到项目里面. 代码在 init : CCSprite *spaceCargoShip = ...