Hive 中parse_url的使用

1、Hive的parse_url函數

parse_url(url, partToExtract[, key]) - extracts a part from a URL

解析URL字符串,partToExtract的選項包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]。

【host,path,query,ref,protocol,file,authority,userinfo】

 

舉例 :

select parse_url('http://facebook.com/path/p1.php?query=1', 'PROTOCOL') from dual;   --http
select parse_url('http://facebook.com/path/p1.php?query=1', 'HOST') from dual;---facebook.com​
select parse_url('http://facebook.com/path/p1.php?query=1', 'REF') from dual;---空​
select parse_url('http://facebook.com/path/p1.php?query=1', 'PATH') from dual;---/path/p1.php​
select parse_url('http://facebook.com/path/p1.php?query=1', 'QUERY') from dual;---空​
​select parse_url('http://facebook.com/path/p1.php?query=1', 'FILE') from dual;​---/path/p1.php?query=1​
​select parse_url('http://facebook.com/path/p1.php?query=1', 'AUTHORITY') from dual;​---facebook.com​
​select parse_url('http://facebook.com/path/p1.php?query=1', 'USERINFO') from dual;​---空

 

下面的可看可不看

===========================================================

2、URL解釋

URL(Uniform Resoure Locator 統一資源定位器)是WWW網頁的地址,好比一個街道在城市地圖上地址。url使用數字和字母按一定順序排列以確定一個地址。

URL的第一個部分http://表示的是要訪問的文件的類型。在網上,這幾乎總是使用http(意思是超文本轉換協議,hypertext transfer protocol.因爲它是用來轉換網頁的協議.)有時也使用ftp(file transferprotocol),意爲文件傳輸協議,主要用來傳輸軟件和大文件(許多做軟件下載的網站就使用ftp作爲下載的網址);telenet(遠程登錄),主要用於遠程交談;以及文件調用等,意思是瀏覽器正在閱讀本地盤外的一個文件,而不是一個遠程計算機.

URL從左到右由下述部分組成:

(1)Internet資源類型(scheme):指出WWW 客戶程序用來C作的工具。如“http://”表示WWW服務器,“ftp://”表示FTP服務器,“gopher://”表示Gopher服務器,而“new:”表示Newgroup新聞組。

·服務器地址(host):指出WWW 網頁所在的服務器域名。

(2)端口(port):有時(並非總是這樣),對某些資源的訪問來說,需給出相應的服務器提供端口號。

(3)路徑(path):指明服務器上某資源的位置(其格式與DOS系統中的格式一樣,通常有目錄/子目錄/文件名這樣結構組成)。與端口一樣,路徑並非總是需要的。

URL地址格式排列爲:scheme://host:port/path

例如http://www.maogoo.com/bbs 就是一個典型的URL地址。

客戶程序首先看到http(超文本傳送協議),便知道處理的是HTML鏈接。接下來的www.maogoo.com是站點地址,最後是目錄/bbs

必須注意,WWW 上的服務器都是區分大小寫字母的,所以,千萬要注意正確的URL大小寫表達形式。

 

3、URL解析

URL即:統一資源定位符 (Uniform Resource Locator, URL) 

完整的URL由這幾個部分構成:

scheme://host:port/path?query#fragment 

scheme:通信協議

常用的http,ftp,maito等

 

host:主機

服務器(計算機)域名系統 (DNS) 主機名或 IP 地址。

 

port:端口號

整數,可選,省略時使用方案的默認端口,如http的默認端口爲80。

 

path:路徑

由零或多個"/"符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。

 

query:查詢

可選,用於給動態網頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術製作的網頁)傳遞參數,可有多個參數,用"&"符號隔開,每個參數的名和值用"="符號隔開。

 

fragment:信息片斷

字符串,用於指定網絡資源中的片斷。例如一個網頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋。(也稱爲錨點.)

 

對於這樣一個URL

 

http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

 

 

我們可以用javascript獲得其中的各個部分

1, window.location.href

整個URl字符串(在瀏覽器中就是完整的地址欄)

本例返回值: http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

 

2,window.location.protocol

URL 的協議部分

本例返回值:http:

 

3,window.location.host

URL 的主機部分

本例返回值:www.x2y2.com

 

4,window.location.port

URL 的端口部分

如果採用默認的80端口(update:即使添加了:80),那麼返回值並不是默認的80而是空字符

本例返回值:""

 

5,window.location.pathname

URL 的路徑部分(就是文件地址)

本例返回值:/fisker/post/0703/window.location.html

 

6,window.location.search

查詢(參數)部分

除了給動態語言賦值以外,我們同樣可以給靜態頁面,並使用javascript來獲得相信應的參數值

本例返回值:?ver=1.0&id=6

 

7,window.location.hash

錨點

本例返回值:#imhere

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