这是我的输入文件
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));
它引发了一些错误。请帮忙
答案 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));