pig中使用的一些实例语法

在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;

时间: 2024-10-05 05:39:20

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

Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)

在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly.本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^). 注意:由于gcc采用AT&T风格的汇编语法(与Intel Syntax相对应,二者的区别参见这里),因此,本文涉及到的汇编代码均以AT&T Syntax为准. 1. 基本语法规则 内联汇编(或称嵌入汇

php学习之道:php中soap的使用实例以及生成WSDL文件,提供自动生成WSDL文件的类库——SoapDiscovery.class.php类

1. web service普及: Webservice soap wsdl区别之个人见解 Web Service实现业务诉求:  Web Service是真正"办事"的那个,提供一种办事接口的统称. WSDL提供"能办的事的文档说明":  对要提供的服务的一种描述格式.我想帮你的忙,但是我要告诉你我都能干什么,以及干这些事情需要的参数类型. SOAP提供"请求"的规范:  向服务接口传递请求的格式,包括方法和参数等.你想让人家办事,总得告诉人家

Bash 4.4 中新增的 ${[email&#160;protected]} 语法

Bash 4.4 中新增了一种 ${...} 语法,长这样:${[email protected]}.根据不同的 operator,它展开后的值可能是 parameter 这个参数的值经过某种转换后的值,又可能是关于 parameter 参数自身的某种信息.这句话太抽象了,还是看下面的详细解释吧. operator 一共有 5 种值,分别是 Q.E.P.A.a,都是单个的字母. Q quote 的缩写,这个 operator 的功能是把 parameter 的值加上合适的引号,从而转换成在脚本中

静态方法中访问类的实例成员

public class StaticShiLi { static int i=1; int j=2; static void m(){ System.out.println(j);报错 } public static void main(String[] args) { // TODO Auto-generated method stub } } 程序报错,显示无法访问. 疑问:那么怎样在静态方法中访问类的实例成员呢?

PIG中的null问题

在比较操作(==,!=,>,<,>=,<=),matches,算数操作(+,-,*,/ ,包含%,?,CASE)中,如果有一个操作数为空,那么结果为空. COUNT_STAR ,不过滤null数据 CAST 操作:将一个null数据从一个数据类型转换到另一个数据类型,结果为空 AVG,MIN,MAX,SUM,COUNT :这几个操作将忽略空值 CONCAT :任意一个字表达式为空,结果为空 SIZE :任意计算的对象为null,结果也为null tuple(.) or map(#)

java中定时器的应用实例

1 package com.xiangshang.listener; 2 3 import java.util.Timer; 4 import java.util.TimerTask; 5 6 import javax.servlet.ServletContextEvent; 7 import javax.servlet.ServletContextListener; 8 9 public class MyTimerListener implements ServletContextListen

将文本框内容添加到表格中的行代码实例

将文本框内容添加到表格中的行代码实例:在实际操作中,往往需要将文本框中的内容添加到表格的行中或者类似的情况,下面就通过一个实例介绍一下如何实现此效果,希望能够对需要的朋友有所帮助,代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&

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

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2 技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群 DT大数据梦工厂① :462923555 DT大数据梦工厂②:437123764 DT大数据梦工厂③

3 weekend110的hadoop中的RPC框架实现机制 + hadoop中的RPC应用实例demo

hadoop中的RPC框架实现机制 RPC是Remotr Process Call, 进程间的远程过程调用,不是在一个jvm里. 即,Controller拿不到Service的实例对象. hadoop中的RPC应用实例demo 在windows是调用端,在linux里是服务端. 在这里,需要LoginServiceinterface.java 停止 出错误了,很明显. 这是个很好的思考题?