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



这是我的输入文件

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));

最新更新