pig中使用的一些实例语法

pig中使用的一些实例语法

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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;
  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117975.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • jar包和war包的介绍和区别

    jar包和war包的介绍和区别JavaSE程序可以打包成Jar包(J其实可以理解为Java了),而JavaWeb程序可以打包成war包(w其实可以理解为Web了)。然后把war发布到Tomcat的webapps目录下,Tomcat会在启动时自动解压war包。JAR(JavaArchive,Java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为J2EE应用程序创建的JAR文件是EAR

  • docker下载安装教程_docker安装软件

    docker下载安装教程_docker安装软件前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

  • 重复字符串 leetcode_求字符串的最长无重复字符串

    重复字符串 leetcode_求字符串的最长无重复字符串原题链接给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,”pwk

  • 2021 idea激活码最新(破解版激活)

    2021 idea激活码最新(破解版激活),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • html中表格整体居中,html中怎么把表格居中

    html中把表格居中的方法:首先创建一个HTML示例文件;然后使用table标签创建一个两行两列的表格;接着给table标签添加一个class属性;最后将margin属性设置为“0auto”即可。本文操作环境:windows7系统、HTML5&&CSS3版、DellG3电脑。html怎么让表格在页面居中新建一个html文件,命名为test.html,用于讲解html怎么让表格在…

  • sql嵌套查询效率_sql嵌套查询返回多个字段

    sql嵌套查询效率_sql嵌套查询返回多个字段文章目录问题解决问题为了查询一个字段,使用了五层嵌套循环,但是花费了约1分钟但是5个表的数据每个最多只有10条,怎么会这么慢呢?解决比如查询语句SELECT*FROMstudet分析器会先看语句的第一个词,如果它发现第一个词是SELECT关键字的时候,它会跳到FROM关键字,然后通过FROM关键字找到表名并把表装入内存。内存中有student表接着是找WHERE关键字,如果找不到则返回到SELECT找字段解析SELECT*FROMstudetWHEREstu_id=1

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号