2013-02-18 76 views
0

有沒有一種方法可以將日誌文件中的每一行讀入它自己的字段。我認爲用('\ n')作爲分隔符我應該能夠實現這一點。PIG - 將每行讀入其字段

文件 - 測試

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

您不能使用'\ n'作爲PigStorage的分隔符。根據Pig10 docs

記錄Deliminters - 對於負載語句豬解釋換行( '\ n'),回車( '\ R' 或CTRL-M)和合並的CR + LF(「\ r \ n')個字符作爲記錄分隔符(不要將這些字符用作字段分隔符)。對於商店報表,Pig使用換行符('\ n')作爲記錄分隔符。

如果你想解析日誌文件,你必須寫一個自定義的加載器。

0

如果您的文件非常小,爲什麼不對文件進行預處理,如將\ n轉換爲\ t,例如LOAD之前?

相關問題