Pig

http://www.codelast.com/?p=4249

http://www.klshu.com/656.html

o_data = LOAD ‘hdfs://hadoop/user/xuting/analy/userDevtmp‘ using PigStorage(‘`‘) AS (userId,userMac,Time_Stamp,reqUserAgent,device,time);

pig
cd hdfs:///user/ xuting/analy/userDevtmp


data2015 = FILTER o_data BY time MATCHES  ‘2015.*‘;

因为我们自己添加了两个字段   设备号和时间   这个是肯定没有问题的   你可以匹配最后一个时间的字段  如果不满足‘2015.*’这样滤掉数据


data_head_error = FILTER data2015 BY userId MATCHES  ‘^A‘;


汇总

B = GROUP data all;

C = FOREACH B GENERATE COUNT(data);

DUMP C;

B = GROUP data all;

C = FOREACH B GENERATE COUNT_STAR(data);

DUMP C;


B = GROUP data by userId;

C = FOREACH B GENERATE  group, COUNT(data);


空值

item = FOREACH data GENERATE reqUserAgent;

A = FILTER item BY reqUserAgent is null;

B = GROUP A all;

C = FOREACH B GENERATE COUNT_STAR(A) ;

dump C;



Missing

item = FOREACH data GENERATE reqUserAgent;

A = FILTER item BY reqUserAgent ==‘Missing‘;

B = GROUP A all;

C = FOREACH B GENERATE COUNT_STAR(A) ;

dump C;



异常

item = FOREACH data GENERATE reqUserAgent;

A = FILTER item BY reqUserAgent ==‘-‘;

B = GROUP A all;

C = FOREACH B GENERATE COUNT_STAR(A) ;

dump C;


匹配

item = FOREACH data GENERATE userId;

A = FILTER data BY NOT userId MATCHES ‘^U[0-9a-zA-Z]{47}$‘;

B = GROUP A all;

C = FOREACH B GENERATE COUNT_STAR(A) ;

dump C;


1. userId : 以U开头,后面接47个[0-9a-zA-Z]范围内的字符

‘^U[0-9a-zA-Z]{47}$‘

2. userMac : ‘^[0-9a-zA-Z]{2}:[0-9a-zA-Z]{2}:[0-9a-zA-Z]{2}:[0-9a-zA-Z]{2}:[0-9a-zA-Z]{2}:[0-9a-zA-Z]{2}$‘

3. Time_Stamp : [0-9]范围内的数字共10位

‘^[0-9]{10}$‘

4. reqUserAgent 这个数据的异常情况先不用分析

数据样例:

Dalvik/1.6.0 (Linux; U; Android 4.3; ZTE Q805T Build/Q805TV1.0.0B02)

Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; YL-Coolpad 8297-T01 Build/KVT49L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

时间: 2024-10-06 13:24:31

Pig的相关文章

codeforces 570 E. Pig and Palindromes

题意:给出n*m的字母表,求从左上角走到右下角能形成多少个回文串,只能往下或往右走. 做法:dp[r1][c1][r2][c2],从左上角走到(r1,c1),从右下角走到(r2,c2)时,能形成多少个回文串,因为爆内存,表示成dp[step][r1][r2],从左上角走到r1行,从右下角走到r2行,分别走了step步时,能形成多少个回文串,因为c1=step+2-r1,c2=n+m-step-r2,所以是一样的,这样差不多能过了,因为两边最多走250步,所以需要的空间是250*500*500,当

玩转大数据系列之Apache Pig如何与Apache Solr集成(二)

散仙,在上篇文章中介绍了,如何使用Apache Pig与Lucene集成,还不知道的道友们,可以先看下上篇,熟悉下具体的流程. 在与Lucene集成过程中,我们发现最终还要把生成的Lucene索引,拷贝至本地磁盘,才能提供检索服务,这样以来,比较繁琐,而且有以下几个缺点: (一)在生成索引以及最终能提供正常的服务之前,索引经过多次落地操作,这无疑会给磁盘和网络IO,带来巨大影响 (二)Lucene的Field的配置与其UDF函数的代码耦合性过强,而且提供的配置也比较简单,不太容易满足,灵活多变的

[转]hadoop,spark,storm,pig,hive,mahout等到底有什么区别和联系?

摘自知乎大神的论述 作者:Xiaoyu Ma链接:https://www.zhihu.com/question/27974418/answer/38965760来源:知乎著作权归作者所有,转载请联系作者获得授权. 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它比作一个厨房所以需要的各种工具.锅碗瓢盆,各有各的用处,互相之间又有重合.你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮.但是每个工具有自己的特性,虽然奇怪

Codeforces Round #316 (Div. 2)E. Pig and Palindromes DP

E. Pig and Palindromes Peppa the Pig was walking and walked into the forest. What a strange coincidence! The forest has the shape of a rectangle, consisting of n rows and m columns. We enumerate the rows of the rectangle from top to bottom with numbe

Codeforces #316 E Pig and Palindromes DP

// Codeforces #316 E Pig and Palindromes // // 题目大意: // // 给你一张地图,n*m每个点是一个字母,现在从(0,0)出发, // 每次只能往右或者往下走,求走到(n-1,m-1)形成回文串的方法数. // // 解题思路: // // 动态规划.首先.如果起点和终点的字母不相同,那么肯定 // 不能形成回文串,直接输出0.对于能形成回文串.我们设状态 // d(step,i,j)表示走了step步,从第0行走到i行,第n-1行走到j行的 /

pig lncRNA lincRNA domestication

Genome-wide identification of long intergenic noncoding RNA genes and their potential association with domestication in pigs Thousands of long intergenic noncoding RNAs (lincRNAs) have been identified in the human and mouse genomes, some of which pla

Pig load 用法举例

users = load '/users.data' using PigStorage() as (name:chararray, age:int, address:chararray); load 'xx': 1)xx可以是文件,也可以是文件夹.如果是文件夹,则文件夹下的所有文件(包括子文件夹)都作为输入文件. 2)xx可以是匹配字符,参考Hadoop的globStatushttp://hadoop.apache.org/docs/current/api/org/apache/hadoop/f

Pig UDF 用户自定义函数

注册UDF do.pig的内容如下: register /xx/yy.jar data = load 'data'; result = foreach data generate aa.bb.Upper($0); dump result; register的路径可以是本地路径,也可以是hdfs路径 register hdfs://pig/xx/yy.jar 如果是pig -Dudf.import.list=aa.bb,在引用UDF时可以不用包路径: register /xx/yy.jar dat

Pig模式

Pig中的模式可以是用户显示声明的,也可以是Pig通过用户的使用方式猜测的. Pig对模式的认知在Pig Latin脚本执行的不同阶段可能是不同的. 下面的语句,用户显示声明了模式:3个字段,分别是name.age.address,它们的类型也确定了. data = load 'data' as (name:chararray, age:int, address:chararray); 下面的语句,用户通过自定义的加载模式声明了模式 data = load 'data' as XxStorage

Pig group用法举例

group语句可以把具有相同键值的数据聚合在一起,与SQL中的group操作有着本质的区别,在SQL中group by字句创建的组必须直接注入一个或多个聚合函数.在Pig Latin中group和聚合函数之间没有直接的关系. group关键字正如它字面所表达的:将包含了特定的键所对应的值的所有记录封装到一个bag中,之后,用户可以将这个结果传递给一个聚合函数或者使用它做其他一些处理. 触发reduce阶段 数据文件内容如下: [[email protected] ~]$ cat orders.d