有没有办法可以将日志文件中的每一行读入自己的字段。我认为('\ 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);
答案 0 :(得分:0)
你不能使用'\ n'作为PigStorage的分隔符。根据{{3}}:
记录分隔符 - 对于加载语句,Pig将换行符('\ n'),回车符('\ r'或CTRL-M)和组合CR + LF('\ r \ n')字符解释为记录分隔符(不要将这些字符用作字段分隔符)。对于商店语句,Pig使用换行符('\ n')作为记录分隔符。
如果要解析日志文件,则必须编写自定义加载程序。
答案 1 :(得分:0)
如果您的文件很小,为什么不对文件进行预处理,例如在LOAD之前将\ n转换为\ t?