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

Hive 中parse_url的使用的更多相关文章

  1. SparkSQL读取Hive中的数据

    由于我Spark采用的是Cloudera公司的CDH,并且安装的时候是在线自动安装和部署的集群.最近在学习SparkSQL,看到SparkSQL on HIVE.下面主要是介绍一下如何通过SparkS ...

  2. hive中rcfile格式(收藏文)

    首先声明,此文是属于纯粹收藏文,感觉讲的很不错. 本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在MapReduce环境下的大规模数据分析中扮 ...

  3. hive中分析函数window子句

    hive中有些分析函数功能确实很强大,在和sum,max等聚合函数结合起来能实现不少功能. 直接上代码演示吧 原始数据 channel1 2016-11-10 1 channel1 2016-11-1 ...

  4. hive中的一种假NULL现象

    使用hive时,我们偶尔会遇到这样的问题,当你将结果输出到屏幕时,查出的数据往往显示为null,但是当你将结果输出到文本时,却显示为空(即未填充),这是为什么呢? 在hive中有一种假NULL,它看起 ...

  5. hive中导入json格式的数据(hive分区表)

    hive中建立外部分区表,外部数据格式是json的如何导入呢? json格式的数据表不必含有分区字段,只需要在hdfs目录结构中体现出分区就可以了 This is all according to t ...

  6. sqoop将关系型数据库的表导入hive中

    1.sqoop 将关系型数据库的数据导入hive的参数说明:

  7. hive中order by,sort by, distribute by, cluster by作用以及用法

    1. order by     Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的 ...

  8. hive 中窗口函数row_number,rank,dense_ran,ntile分析函数的用法

    hive中一般取top n时,row_number(),rank,dense_ran()这三个函数就派上用场了, 先简单说下这三函数都是排名的,不过呢还有点细微的区别. 通过代码运行结果一看就明白了. ...

  9. hive中grouping sets的使用

    hive中grouping sets 数量较多时如何处理?    可以使用如下设置来 set hive.new.job.grouping.set.cardinality = 30; 这条设置的意义在于 ...

随机推荐

  1. <input type="file">火狐兼容

    <input type="file">放着a标签下火狐不兼容 <a href=""><input type="file& ...

  2. MySQL数据库4 - 查看数据表

    一. 查看表的基本结构 语法:DESCRIBE/DESC TABLE_NAME 查询结果含义: Field: 字段名 Type: 字段类型 Null: 是否可以为空 Key: 是否编制索引 defau ...

  3. IOS百度地图获取所在的城市名称

    笔者的app要实现定位所在省和城市名称,借此总结巩固一下! @interface VenueListVC : BasePageTableViewVC<BMKLocationServiceDele ...

  4. php数组常见的几种遍历方法

    1.foreach遍历 $arr[] = array('first'=>green,'second'=>'yellow','third'=>'blue'); foreach($arr ...

  5. Java随笔一

    1.继承:子类调用超类构造器时,super调用构造器的语句必须是子类构造器的第一条语句: Java没有多继承,但是可以构造实现多个接口的类: 2.多态:Java 中,对象变量是多态的.一个父类变量既可 ...

  6. GridView获取CheckBox的值及所在列的ID

    //根据GridView的列数进行循环 ; i < GridView1.Rows.Count; i++) { //检查是否有ID为CheckBox1的CheckBox控件,如果有就赋值给Chec ...

  7. hdu1004

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  8. C++/java之间的Socket通信大小端注意事项

    在一个物联往项目中,需要java云平台与一个客户端做socket定制协议的通信:然而在第一次测试时,并没有按照预想的那样完成解析.查找资料以后是因为客户端的数据读取方式为小端模式,而java默认采用大 ...

  9. 更新记录后关闭子窗口并刷新父窗口的Javascript

    有时我们需要在新打开的窗口里面编辑信息,等编辑完了,需要将当前窗口关闭并且刷新父窗口,以使修改生效,本文就是介绍用 javascript 来实现"更新记录后关闭子窗口并刷新父窗口" ...

  10. Discuz对不起,您安装的不是正版应用的解决办法

    方法三(2014年新增最简单方法.) .打开/source /function/function_cloudaddons.php这个文件,2.搜索:cloudaddons_validator,3.一般 ...