Apache pig 清管器-将每行读入其字段

Apache pig 清管器-将每行读入其字段,apache-pig,Apache Pig,是否有一种方法可以将日志文件中的每一行读取到它自己的字段中。我想用('\n')作为分隔符应该可以实现这一点 文件测试 因此,我想将其解读为三个领域: filename - Audit file /u01/app/oracle/admin/st01/adump/st011_ora_27063_1.aud nodename - Node name: test0041 username - CLIENT USER:[6] 'oracle' 我试过了,但没用。 A = LOAD 'test'

是否有一种方法可以将日志文件中的每一行读取到它自己的字段中。我想用('\n')作为分隔符应该可以实现这一点

文件测试

因此,我想将其解读为三个领域:

filename - Audit file /u01/app/oracle/admin/st01/adump/st011_ora_27063_1.aud
nodename - Node name:      test0041
username - CLIENT USER:[6] 'oracle'
我试过了,但没用。

A = LOAD 'test' using PigStorage ('\n') AS (filename, nodename, username);

不能将“\n”用作存储的分隔符。根据报告:

Record Deliminters–对于load语句,Pig将换行符('\n')、回车符('\r'或CTRL-M)和组合的CR+LF('\r\n')字符解释为记录分隔符(不要将这些字符用作字段分隔符)。对于存储语句,Pig使用换行符('\n')作为记录分隔符


如果要分析日志文件,您必须编写一个自定义加载程序。

如果您的文件很小,为什么不对文件进行预处理,例如在加载之前将\n转换为\t

A = LOAD 'test' using PigStorage ('\n') AS (filename, nodename, username);