Pig函数在分隔符后读取字符

时间:2014-07-21 13:20:25

标签: apache-pig

这是我的输入文件

a1,hello.VDF
a2,rim.VIM
a3.dr.VDD

我需要输出如下

a1,VDF
a2,VIM
a3,VDD

我的脚本如下:

  

myinput = LOAD' file'使用PigStorage(',')   AS(T1:chararray,T2:chararray); foreached = FOREACH myinput GENERATE   T1,SUBSTRING(T2,INDEXOF(T2,'',1),SIZE(T2));

它引发了一些错误。请帮忙

2 个答案:

答案 0 :(得分:0)

SIZE返回long,但SUBSTRING需要整数,因此您需要进行转换:

foreached = 
  FOREACH myinput GENERATE t1,SUBSTRING(t2,INDEXOF(t2,'.',1)+1,(int)SIZE(t2));

答案 1 :(得分:0)

试试这个:

output = foreach myinput generate ((t1 matches '(.*)\\.(.*)'?SUBSTRING(t1, 0, 2):t1), (t1 matches '(.*)\\.(.*)'?SUBSTRING(t1, INDEXOF(t1,'.',0)+1, (int)SIZE(t1)):t2));