hive内置函数和自定义函数的使用
2017-08-15 20:17
417 查看
1.hive函数的分类
内置函数和自定义函数1.1、内置函数
1、查询有哪些内置函数:show functions;
2、查询某个内置函数怎么使用
desc function extended concat;
1.2、自定义函数
分三大类:1、UDF : user define function : 单行普通函数 (一进一出 : 进一行, 出一行)
substring(string,0,3)
2、UDAF :user define aggregate function : 用户自定义聚集函数(多进一出:多换输入,单行输出)
max, count, min, avg, sum..... group(id)
3、UDTF : user define table_tranform function : 表格生成函数 : (一进多出)
explode(array)
explode(map)
2.内置函数get_json_object的使用案例
需要借助一张临时表主要用来处理json数据的
json数据格式如下
{"movie":"1193","rate":"5","timeStamp":"978300760","uid":"1"}
说明:key _value 形式的 movie =1193 rate=5 timeStamp=978300760 UID=1
数据的准备:rating.json 有63M的文件
// 创建一张表存储json文件
create table json_table (jsonline string);
// 加载数据
load data local inpath "/home/hadoop/rating.json" into table json_table;
select * from json_table limit 5;
// 通过内置函数get_json_object解析json数据
select get_json_object(jsonline, '$.movie') as movie from json_table limit 5;
创建一张hive表有这四个字段:
create table movierate(movie int, rate int, ts bigint, uid int) row format delimited fields terminated by "\t";
insert into table movierate
select get_json_object(jsonline, '$.movie') as movie,
get_json_object(jsonline, '$.rate') as rate,
get_json_object(jsonline, '$.timeStamp') as ts,
get_json_object(jsonline, '$.uid') as uid
from json_table;
select * from movierate limit 5;
3.自定义函数UDTF中的explode的使用案例
explode使用场景:huangbo a,1:b,2:c,3
xuzheng a,4:b,5:c,6
wangbaoqiang a,7:b,8:c,9
huangbo a
1
huangbo b
2
huangbo c
3
xuzhegn a
4
xuzheng b
5
.
.
.
create table mapmap(name string, info map<string, int>) row format delimited fields terminated by "\t" collection items terminated by ":" map keys terminated by ",";
load data local inpath "/home/hadoop/mapmap.txt" into table mapmap;
select * from mapmap;
select m.name, tf.key, tf.value from mapmap m lateral view explode(m.info) tf as key,value;
相关文章推荐
- Hive自定义函数与transform的使用
- Hive的内置函数和自定义函数UDF
- 使用Hive自定义函数生成UUID随机字符串函数
- 使用hive自定义函数pom.xml的写法
- 内置函数 & UDF函数在Hive中的使用
- 5.Smart使用内置函数或者自定义函数
- 使用 {$INCLUDE} 或 {$I} 指令管理和调用自定义函数
- 如何:使用自定义函数对 ASP.NET 服务器控件进行验证
- 使用ODAC调用ORACLE的自定义函数和存储过程
- 使用水晶报表自定义函数进行代码重用
- Ext.XTemplate中自定义函数if的使用
- 如何:使用自定义函数对 ASP.NET 服务器控件进行验证
- Windows下使用VIM,搭建Mainframe开发环境(八)---自定义功能函数
- NHibernate 如何实现使用sql自定义的函数
- 使用VS 2005 在SQL Server 2005 中创建自定义函数 UDF 时发生的问题
- JSP的页面自定义函数详谈不使用JAVABEAN
- 和hibernate结合使用的sql split自定义函数
- oracle自定义函数、自定义包使用(一)
- Ms_SQL 使用自定义函数须注意
- Oracle中怎样使用JAVA函数及自定义函数