这是我的输入文件
a1,hello.VDF
a2,rim.VIM
a3.dr.VDD
我需要如下输出
a1,VDF
a2,VIM
a3,VDD
我的脚本如下:
myinput = LOAD 'file' USING PigStorage(',')(t1: chararray, t2: chararray);FOREACH = FOREACH myinput生成t1、SUBSTRING (t2, INDEXOF (t2, '。',1),大小(t2));
抛出一些错误。请帮忙
试试这个:
output = foreach myinput generate ((t1 matches '(.*)\.(.*)'?SUBSTRING(t1, 0, 2):t1), (t1 matches '(.*)\.(.*)'?SUBSTRING(t1, INDEXOF(t1,'.',0)+1, (int)SIZE(t1)):t2));
SIZE返回long,但SUBSTRING接受整数,因此需要进行转换:
foreached =
FOREACH myinput GENERATE t1,SUBSTRING(t2,INDEXOF(t2,'.',1)+1,(int)SIZE(t2));