Apache pig 加载任意白间隔分隔文件的最佳代码

Apache pig 加载任意白间隔分隔文件的最佳代码,apache-pig,Apache Pig,我想知道是否有人可以提供一个改善以下 我遇到了以空格分隔的文件,其中 空白分隔符可以因行而异,甚至在 一行中的字段,如此处所示: whiteSpaceDelimitedFields.txt: f11 f12 f13 ... f22 f22 f23 ... f32 f32 f33 ... 对于这个空白的一般情况,我使用了下面的PIG代码片段 (如下输出所示): 我设想这种转换发生在map()方法中(与记录读取器中的动态转换相反——尽管我不确定这一点);但无论如何,对于这种经常发

我想知道是否有人可以提供一个改善以下

我遇到了以空格分隔的文件,其中 空白分隔符可以因行而异,甚至在 一行中的字段,如此处所示:

whiteSpaceDelimitedFields.txt:

f11     f12 f13 ...
f22 f22  f23 ...
f32  f32    f33 ...
对于这个空白的一般情况,我使用了下面的PIG代码片段 (如下输出所示):

我设想这种转换发生在map()方法中(与记录读取器中的动态转换相反——尽管我不确定这一点);但无论如何,对于这种经常发生的情况,猪有什么改进吗?也许有什么建议


提前感谢

如果您不想创建自定义加载程序,可以查看Piggybank的:


谢谢你,罗兰。我要试试这个加载器。(旁注:我会投票支持你的建议,但是我使用该网站的时间还不够长,没有达到15分。)
grunt> A = LOAD 'whiteSpaceDelimitedFields.txt' USING TextLoader() AS (line:chararray);
grunt> B = FOREACH A GENERATE FLATTEN(STRSPLIT(line, '\\s+')) AS (f0:type, f1:type, ...);
grunt> DUMP B;

(f11,f12,f13)
(f22,f22,f23)
(f32,f32,f33)
grunt>
REGISTER '/my_pig_home/contrib/piggybank/java/piggybank.jar'
A = LOAD 'data.txt' USING org.apache.pig.piggybank.storage.MyRegExLoader(
  '(\\S+)\\s+(\\S+)\\s+(\\S+)') as 
  (field1:chararray, field2:chararray, filed3:chararray);

dump A;
(f11,f12,f13)
(f22,f22,f23)
(f32,f32,f33)