不編寫一行代碼實現 Hive 自定義 UDF 函數 解析 UA

1、什麼是UA?

      用戶訪問服務器時,所攜帶的一些基本信息。

     日誌字段如下:

Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 main%2F1.0 baiduboxapp/11.15.5.16 (Baidu; P2 13.1.2                     )
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 main%2F1.0 baiduboxapp/11.15.5.16 (Baidu; P2 13.1.2                     )
Mozilla/5.0 (Linux; Android 9; COL-AL10 Build/HUAWEICOL-AL10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.155 Mobile Safari/537.36 Zeus
Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 main%2F1.0 baiduboxapp/11.15.5.16 (Baidu; P2 13.1.2                     )
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Mozilla/5.0 (Linux; Android 9; COL-AL10 Build/HUAWEICOL-AL10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.155 Mobile Safari/537.36 Zeus

 

2、思路

      添加自定義UDF 函數,進行解析。Jar 包有現成的,如何下載如何打包?

      步驟如下:

     1、用你的IDEAL 創建一個 maven 工程

      

 

 

     2、添加maven 依賴 進行 下載 Jar 包

添加依賴:

<dependency>
  <groupId>nl.basjes.parse.useragent</groupId>
  <artifactId>yauaa-hive</artifactId>
  <classifier>udf</classifier>
  <version>5.8</version>
</dependency>

版本到 2020-1-6 有如下版本:

          5.8\5.6\5.5

 

打包: 這裏要注意我怎麼打包!

 

 

 

 

直接上傳到 hive 目錄下的 

 

 /opt/hive/apache-hive-2.1.1-bin/lib/

 

最後上傳 jar 包 執行下面命令即可:

add jar  /opt/hive/apache-hive-2.1.1-bin/lib/yauaa-hive-5.8-udf.jar;

CREATE FUNCTION ParseUserAgent AS 'nl.basjes.parse.useragent.hive.ParseUserAgent';

DESCRIBE FUNCTION EXTENDED ParseUserAgent;


SELECT ParseUserAgent("Mozilla 5.0  Windows NT 10.0  WOW64  AppleWebKit 537.36  KHTML  like Gecko  Chrome 63.0.3239.132 Safari 537.36").OperatingsystemNameVersion as a;
               
OK
Windows NT 10.0 WOW64

 

結果展示:

 

這個是 具體的介紹方法:

https://github.com/nielsbasjes/yauaa/blob/29cf3abbd2207e0634c9a7f2917c999bb0fd71c7/src/main/docs/UDF-ApacheHive.md

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章