有没有一种方法可以将日志文件中的每一行读取到它自己的字段中。我想用('\n')作为分隔符应该可以实现这一点。
文件-测试
Audit file /u01/app/oracle/admin/st01/adump/st011_ora_27063_1.aud
Node name: test0041
CLIENT USER:[6] 'oracle'
所以我想把它分为三个领域
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);
2条答案
按热度按时间8ulbf1ek1#
如果您的文件很小,为什么不对文件进行预处理,例如在加载之前将文件转换为?
brc7rcf02#
不能将“\n”用作pigstorage的分隔符。根据pig10文件:
record deliminters–对于load语句,pig将换行符('\n')、回车符('\r'或ctrl-m)和组合的cr+lf('\r\n')字符解释为记录分隔符(不要将这些字符用作字段分隔符)。对于store语句,pig使用换行符('\n')字符作为记录分隔符。
如果要解析日志文件,就必须编写一个自定义加载程序。