我是一個完整的初學者豬。我已經安裝了cdh4豬,並且我已連接到cdh4羣集。我們需要處理這些大量的網絡日誌文件(這些文件已經被加載到HDFS中)。不幸的是,日誌語法非常複雜(不是典型的逗號分隔文件)。限制是我目前無法用其他工具預處理日誌文件,因爲它們太大而且無法承受存儲副本。這裏是在日誌原始行:如何使用Pig加載複雜的Web日誌語法?
「2013-07-02 16時17分12秒 -0700」,「C = Thing.Render & d = {%22renderType%22:%22Primary% 22,%22renderSource%22:%22Folio%22%22things%22:[{%22itemId%22:%225442f624492068b7ce7e2dd59339ef35%22%22userItemId%22:%22873ef2080b337b57896390c9f747db4d%22%22listId%22:%22bf5bbeaa8eae459a83fb9e2ceb99930d%22% 22ownerId%22:%222a4034e6b2e800c3ff2f128fa4f1b387%22}],%22redirectId%22:%22tgvm%22%22sourceId%22:%226da6f959-8309-4387-84c6-a5ddc10c22dd%22%22valid%22:假,%22pageLoadId%22 :%224ada55ef-4ea9-4642-ada5-d053c45c00a4%22%22clientTime%22:%222013-07-02T23:18:07.243Z%22%22clientTimeZone%22:5,%22process%22:%22ml.mobileweb。 fb%22,%22c%22:%22Thing.Render%22}「,」http://m.someurl.com/listthing/5442f624492068b7ce7e2dd59339ef35?rdrId=tgvm&userItemId=873ef2080b337b57896390c9f747db4d&fmlrdr=t&itemId=5442f624492068b7ce7e2dd59339ef35&subListId=bf5bbeaa8eae459a83fb9e2ceb99930d&puid=2a4034e6b2e800c3ff2f128fa4f1b387&mlrdr=t「,」Mozilla/5.0 (iPhone; CP U iPhone OS 6_1_3,如Mac OS X)AppleWebKit/536.26(KHTML, ,如Gecko)Mobile/10B329 [FBAN/FBIOS; FBAV/6.2; FBBV/228172; FBDV/iPhone4,1; FBMD/iPhone; FBSN/iPhone OS; FBSV/6.1.3; FBSS/2; FBCR /衝刺; FBID /電話; FBLC/EN_US; FBOP/1]」, 「10.nn.nn.nnn」, 「nn.nn.nn.nn, nn.nn.0.20」
正如你可能已經注意到有內嵌有一些JSON但URL編碼後的url解碼(可豬八戒做URL解碼?)這裏是JSON的樣子:
{「renderType」:「主」, 「renderSource」: 「開本」, 「東西」:[{ 「的itemId」: 「5442f624492068b7ce7e2dd59339ef35」, 「userItemId」: 「873ef2080b337b57896390c9f747db4d」, 「listId」: 「bf5bbeaa8eae459a83fb9e2ceb99930d」, 「OWNERID」: 「2a4034e6b2e800c3ff2f128fa4f1b387」}],「redirectId 「:」 tgvm 「 」的sourceID「: 」6da6f959-8309-4387-84c6-a5ddc10c22dd「, 」有效「:假的,」 pageLoadId 「:」 4ada55ef-4ea9-4642-ada5-d053c45c00a4" , 「clientTime」: 「2013-07-02T23:18:07.243Z」, 「clientTimeZone」:5 「過程」: 「ml.mobileweb.fb」,」 c「:」Thing.Render「}
我需要提取json中的不同字段以及實際上是集合的」things「字段。我還需要提取日誌中的其他查詢字符串值。豬可以直接處理這種源數據,如果可以的話,你能如此友好地指導我如何讓豬能夠解析和加載它?
謝謝!
編碼令人討厭。但是TextLoader和PigStorage不提供設置編碼的方式。 – zsxwing