pig中使用的一些实例语法

pig中使用的一些实例语法

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

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac 安装pymssql

    mac 安装pymssql我们在mac环境下想连接mssqlserver数据库,首先要考虑的就是使用pymssql库,而pymssql是在freedts的基础上研发的,所以要先安装freedts,但是安装这个库之前还需有有一系列的支撑库brewinstallunixodbcpipinstallCythonpipinstallsetuptools_git我们正常直接使用pipinstallpymssql时会报下面的错误Jason-MacBook-Pro:~wangying$pipinstal..

    2022年6月16日
    63
  • ArcGIS二次开发基础教程(02):地图导航和鹰眼「建议收藏」

    ArcGIS二次开发基础教程(02):地图导航和鹰眼「建议收藏」ArcGIS二次开发基础教程(02):地图导航和鹰眼地图导航(主要是调用命令和工具)地图的放缩和漫游if(axMapControl1.CurrentTool==null){ICommandicc;//地图放大 ITooltool=newControlsMapZoomInToolClass();//地图缩小//ITooltool…

    2022年7月23日
    10
  • JavaScript中的数组方法总结+详解「建议收藏」

    JavaScript中的数组方法总结+详解「建议收藏」在JS中,数组方法是非常重要且常用的的方法.在此整理总结一番.JavaScript数组的力量隐藏在数组方法中。1.js常用数组方法方法名功能返回值是否改变原数组版本push()在数组最后一位添加一或多个元素返回长度YES5-unshift()在数组前添加一或多个元素返回长度YES5-2.方法详解1.push……

    2022年7月13日
    12
  • html怎么将表格居中_HTML居中代码

    html怎么将表格居中_HTML居中代码表格是一种以有组织的方式呈现大量信息的绝佳方式。销售数据、网页流量、股票市场趋势和学生成绩是经常以表格形式呈现的信息示例。使用HTML将表格添加到网页时,将其置于页面中心可能更具视觉吸引力。居中文本和图片通常是通过text-align类或通过CSS来完成的,但是居中表格需要不同的方法。下面提供了有关如何使表格在网页上居中的详细信息。将表格添加到网页时,默认情况下,它与页面或容器的左侧对齐,如下所示。上表的HTML源代码如下。要使此表居中,您需要添加;margin-left:auto;margin-r

    2022年9月18日
    0
  • linux抓包和分析工具_linux tcpdump 抓包

    linux抓包和分析工具_linux tcpdump 抓包实践中,通常在Linux里用tcpdump命令抓包,然后在Windows里用wireshark软件分析包。较通用的tcpdump命令:tcpdump-ieth0-s0-wpackage.cap注[对eth0进行完整数据包抓取,数据包输入保存到当前目录package.cap中,因为没有-c参数限制,须按Ctrl+C停止抓包]—————–

    2022年10月14日
    0
  • 五类常见算法小记 (递归与分治,动态规划,贪心,回溯,分支界限法)

    五类常见算法小记 (递归与分治,动态规划,贪心,回溯,分支界限法)

    2022年3月3日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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