码迷,mamicode.com
首页 > 其他好文 > 详细

Pig模式

时间:2015-06-07 23:22:57      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

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会将它们作为bytearray类型,然后Pig会根据用户对数据的使用方式进行猜测:
$7/1000猜测出$7字段是int类型
$3*100.0猜测出$3字段是double类型
SUBSTRING($0, 0, 1)猜测出$0是chararray类型
$6-$3猜测出$6、$3是数值类型,但为了安全起见,Pig将它们猜测成double类型
 data = load ‘data‘;
frhd = foreach data generate $7/1000, $3*100.0, SUBSTRING($0, 0, 1), $6-$3
 
 
Pig通过$0 > $3猜测不出它们是什么类型(可以是chararray,也可以是数值类型),就将它们作为bytearray类型。
cleaned = filter data by $0 > $3
 
 

Pig模式

标签:

原文地址:http://www.cnblogs.com/lishouguang/p/4559267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!