PIG - 将每一行读入其字段

时间:2013-02-18 02:27:51

标签: apache-pig

有没有办法可以将日志文件中的每一行读入自己的字段。我认为('\ 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 个答案:

答案 0 :(得分:0)

你不能使用'\ n'作为PigStorage的分隔符。根据{{​​3}}:

  

记录分隔符 - 对于加载语句,Pig将换行符('\ n'),回车符('\ r'或CTRL-M)和组合CR + LF('\ r \ n')字符解释为记录分隔符(不要将这些字符用作字段分隔符)。对于商店语句,Pig使用换行符('\ n')作为记录分隔符。

如果要解析日志文件,则必须编写自定义加载程序。

答案 1 :(得分:0)

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