2017-03-01 67 views
2

我学习猪,并具有以下语句:PIG if条件

> jan = LOAD 'hdfs:/201001hourlyx.txt USING PigStorage(','); 
> feb = LOAD 'hdfs:/201002hourlyx.txt USING PigStorage(','); 
> month_quad = UNION jan,feb; 
> STORE month_quad INTO 'hdfs:/month_quad'; 
> SPLIT month_quad INTO split_jan IF (SUBSTRING(data, 4, 6) == '01'); 

我得到斯普利特

ERROR org.apache.pig.tools.grunt以下错误.GRUNT - ERROR 1200 <线5栏67>语法错误,处或附近意外符号 ':'

是否有人ħ ave关于什么是语法错误的建议?

回答

2

在猪拉丁语中,SPLIT无法使用单一条件。 SPLIT旨在将关系分区为两个或更多关系。

语法:

SPLIT alias INTO alias IF expression, alias IF expression [, alias IF expression …]; 

最少两个表达式都需要使用SPLIT操作,而你的发言只包含一个与猪预期为多。

要么添加额外的IF子句的声明或使用其FILTER等效。

split_jan = FILTER month_quad by (SUBSTRING(data, 4, 6) == '01');