2013-02-18 49 views
0

是否有Pig UDF計算博客中的時差?pig udf計算博客中的時間差異

假設我有以下格式的網誌:

10.171.100.10 - - [12/Jan/2012:14:39:46 +0530] "GET /amazon/navigator/index.php 
HTTP/1.1" 200 402 "someurl/page1" "Mozilla/4.0 (
compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 3.0.4506 
.2152; MS-RTC LM 8; .NET CLR 3.5.30729; .NET CLR 2.0.50727)" 
10.171.100.10 - - [12/Jan/2012:14:41:47 +0530] "GET /amazon/header.php HTTP/1.1 
" 200 4376 "someurl/page2" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 3.0.450 
6.2152; MS-RTC LM 8; .NET CLR 3.5.30729; .NET CLR 2.0.50727)" 
10.171.100.10 - - [12/Jan/2012:14:44:15 +0530] "GET /amazon/navigator/navigator 
.php HTTP/1.1" 200 912 "someurl/page3" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET 
CLR 3.0.4506.2152; MS-RTC LM 8; .NET CLR 3.5.30729; .NET CLR 2.0.50727)" 

與IP 10.171.100.10用戶訪問somurl/page1 at 12/Jan/2012:14:39:46(在博客第1項)。下一個用戶訪問someurl/page212/Jan/2012:14:41:47。所以,用戶停留在page1上2毫秒1秒。同樣,用戶停留在第2頁上2分28秒(14.44:15 - 14:41.47)。我不在乎用戶在第3頁上停留了多久,因爲我沒有什麼可以與之比較。輸出可以是:

10.171.100.10 someurl/page1 121 sec 
10.171.100.10 someurl/page2 148 sec etc .. 

該博客將有數百萬行,並且IP不一定會按照排序順序。有關如何使用Pig UDF或任何其他技術來解決它的任何建議?

+0

你最終爲此做了什麼? – cloud36 2014-10-18 02:57:58

回答

0

我不知道任何默認情況下會使用後續行中的內容生成一些內容的功能,因爲序列是可變的,因此非常不可靠。

你必須編寫自己的UDF。爲了優化計算(如果您擁有數十億行),您可能需要ORDER,IPdate以及GROUP您的數據由IP設置,並且在每個IP(或IP組)上啓動MapReduce作業之前確保所有對應於特定IP的行由同一節點處理。另外,我建議你再考慮一下你想用來計算在頁面上花費的時間的規則:什麼時候用戶仍然活躍,用戶何時返回?你可能會有很長的時間範圍。