pig-将每行读入其字段

ijxebb2r  于 2021-06-24  发布在  Pig
关注(0)|答案(2)|浏览(344)

有没有一种方法可以将日志文件中的每一行读取到它自己的字段中。我想用('\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);
8ulbf1ek

8ulbf1ek1#

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

brc7rcf0

brc7rcf02#

不能将“\n”用作pigstorage的分隔符。根据pig10文件:
record deliminters–对于load语句,pig将换行符('\n')、回车符('\r'或ctrl-m)和组合的cr+lf('\r\n')字符解释为记录分隔符(不要将这些字符用作字段分隔符)。对于store语句,pig使用换行符('\n')字符作为记录分隔符。
如果要解析日志文件,就必须编写一个自定义加载程序。

相关问题