做网站制作怎么样,音乐网站建设成本,网站怎么做内部链接,南京网站南京网站设计制作公司目录 一.函数分类标准 
二.查看官方函数,与简单演示 
三.3种类型函数演示 
四.字符串函数 
1.常见字符串函数 
2.索引函数 解析函数 
五.日期函数  1.获取当前时间 2.获取日期相关 3.周,季度等计算 
4.时间戳  
六.数学函数 一.函数分类标准 
目前hive三大标准 UDF:#xff08…目录 一.函数分类标准 
二.查看官方函数,与简单演示 
三.3种类型函数演示 
四.字符串函数 
1.常见字符串函数 
2.索引函数 解析函数 
五.日期函数  1.获取当前时间 2.获取日期相关 3.周,季度等计算 
4.时间戳  
六.数学函数 一.函数分类标准 
目前hive三大标准 UDF:User-Defined-Function普通函数:  特点是一进一出(输入一行数据输出一行数据)        举例: split UDAF:User-Defined Aggregation Function聚合函数: 特点是多进一出(输入多行输出一行)   举例: count sum max  min  avg UDTF:User-Defined Table-Generating Functions表生成函数:  特点是一进多出(输入一行输出多行)   举例: explode 
二.查看官方函数,与简单演示 
-- 创建数据库
create database hive5;-- 使用库
use hive5;-- 查看库扩展信息
describe database extended hive5;-- 查看指定函数基本信息
desc function split;-- 查看所有hive函数
show functions;
-- 289个-- 查看函数扩展信息,并演示官方的函数示例
describe function extended split;
SELECT split(oneAtwoBthreeC, [ABC]); -- [one,two,three,]
describe function extended count;
describe function extended current_timestamp; 三.3种类型函数演示 
普通函数(一进一出) 
-- 演示普通函数示例 (一进一出)
-- 查看指定函数详细扩展信息(有对应示例)
desc function extended split;
select split(one,two,three,,); 
聚合函数(多进一出) 
-- 聚合函数(多进一出)
--select min|max|sum|count|avg(字段名) from 表名; 
炸裂函数(一进多出) 
-- 演示炸裂函数示例(一进多出),关键字:explode 炸裂
-- 查看指定函数详细扩展信息(有对应示例)
desc function extended explode;-- 已知array容器中苹果,香蕉,西瓜,哈密瓜,火龙果,榴莲要求炸开
select explode(array(苹果,香蕉,西瓜,哈密瓜,火龙果,榴莲));
select explode(array(a,b,c,d,e,f));
select explode(map(a,1,b,2,c,3)); 
四.字符串函数 
1.常见字符串函数 
---------------------------------字符串函数----------------------------------------------- 演示字符串常见的函数
-- concat: 字符串紧凑拼接到一起生成新字符串
select concat(bbdwj,123,456);   --bbdwj123456-- concat_ws: 字符串用指定分隔符拼接到一起生成新字符串
select concat_ws(-,bbdwj,123,456);  --bbdwj-123-456-- length: 获取字符串长度
select length(bbdwj123456);  -- 11-- lower: 把字符串中的字母全部变成小写
select lower(BAIBAIDEWJ);  --baibaidewj-- upper: 把字符串中的字母全部变成大写
select upper(baibaidewj); --BAIBAIDEWJ-- trim: 把字符串两端的空白去除
select trim(   baibaideweijie  ); --baibaideweijie-- split :从指定的字符串开始左右切割
select split(baiQbaiQdeQweiQjie,Q); --[bai,bai,de,wei,jie] 
2.索引函数 
---------------------------------索引----------------------------------------------- substr(字符串,开始索引,截取长度): 截取字符串
-- 注意: 正索引从1开始正着数  负索引从-1开始负着数
select substr(b12345678cda,1,5);  --从1开始数,步长为5
select substr(b12345678cda,1);  -- 步长不写,默认到结尾
select substr(b12345678cda,-7);  -- 从负索引-7开始,正着往后走到最后-- 已知2023-05-21要求分别截取年月日
select substr(2023-05-21,1,4); --2023
select substr(2023-05-21,6,2); -- 05
select substr(2023-05-21,9,2); -- 21
select substr(current_date(),1,7); --获取当前月份 2023-11 -- replace(大字符串,敏感词,替换后的内容):替换字符串
select replace(我是bbdwj,我是,**); -- **bbdwj--正则表达式替换函数regexp_replace(str, regexp, rep)
select regexp_replace(bbdwj-123,\\d,您好);  --\d代表digit数字,用正则匹配到字符串然后替换--正则表达式解析函数regexp_extract(str, regexp[, idx])
-- 正则中()代表分组,自动从1开始生成编号,提取正则匹配到的指定组内容
select regexp_extract(bbdwj-123-789,(\\d)-(\\d),1);--用正则匹配数字,后面1代表匹配到的第一个数字组是123
select regexp_extract(bbdwj-123-789,(\\d)-(\\d),2);--用正则匹配数字,后面1代表匹配到的第一个数字组是789解析函数 
--URL解析函数parse_url 注意要想一次解析出多个 可以使用parse_url_tuple这个UDTF函数
-- URL: 统一资源定位符 也就是咱们常说的网址   组成: 协议 主机地址:端口号 资源路径 查询参数--快速从网址中获取需要的信息,host , path , query , user , pwd
select parse_url(http://www.itcast.cn/path/binzi.html?userbinzipwd123, HOST); --www.itcast.cn
select parse_url(http://www.itcast.cn/path/binzi.html?userbinzipwd123, PATH); --/path/binzi.html
select parse_url(http://www.itcast.cn/path/binzi.html?userbinzipwd123, QUERY);--userbinzipwd123
select parse_url(http://www.itcast.cn/path/binzi.html?userbinzipwd123, QUERY, user);--binzi
select parse_url(http://www.itcast.cn/path/binzi.html?userbinzipwd123, QUERY, pwd);--123 五.日期函数  1.获取当前时间 
-------------------------------------时间函数---------------------------------------------
-- 2.日期时间函数
-- 获取当前时间戳(时间原点到现在的秒/毫秒)
select unix_timestamp(); -- 1684639237
select current_timestamp(); -- 转换成现在的时间-- 获取当前日期
select current_date(); -- 2023-05-21-- 字符串格式时间戳转日期
select to_date(2023-05-21 11:19:31.222000000);
select to_date(current_timestamp());2.获取日期相关 
-- 依次获取年月日时分秒
select year(current_date()); --2023
select month(current_date()); -- 11
select day(current_date());  --15select hour(current_timestamp()); --11
select minute(current_timestamp()); --4
select second(current_timestamp()); --32-- 计算时间差
select datediff(2024-07-24,2023-07-24); -- 新的时间在前,旧的在后 366-- 获取明天的日期
select date_add(current_timestamp(),1); --获取明天的日期
select date_sub(current_timestamp(),-1); --获取明天的日期-- 获取昨天的日期
select date_sub(current_timestamp(),1);-- 获取昨天的日期
select date_add(current_timestamp(),-1);-- 获取昨天的日期 3.周,季度等计算 
-- 依次获取现在是月中第几天,周中第几天,季度,年中第几周
select dayofmonth(current_timestamp()); -- day of month 获取今天是本月中的第几天
select dayofweek(current_timestamp());-- day of week 获取今天是本周的第几天,星期天才是一周的开始
select quarter(current_timestamp()); -- quarter 获取现在是本年的第几个季度,一年分为四季
select weekofyear(current_timestamp()); -- week of year 获取本周是今年的第几周4.时间戳  
-- 拓展
--获取当前UNIX时间戳函数: unix_timestamp
select unix_timestamp(); -- 1684640319--字符串日期转UNIX时间戳函数: unix_timestamp
select unix_timestamp(2023-5-21 11:38:56); -- 1684669136--指定格式日期转UNIX时间戳函数: unix_timestamp
select unix_timestamp(20230521 11:38:56,yyyyMMdd HH:mm:ss); --1684669136--UNIX时间戳转日期函数: from_unixtime
select from_unixtime(1684669136); -- 2023-05-21 11:38:56
-- 获取时间原点日期
select from_unixtime(0); -- 1970-01-01 00:00:00六.数学函数 
-- 随机数
select rand();--拼接随机数
select concat(我的余额是:,rand());-- 获取π值
select pi();-- 四舍五入设置保留位数
select round(pi(),4);-- 向上取整
select ceil(pi());  --ceil天花板
select ceil(2.14); --3-- 向下取整
select floor(pi()); --floor 地板
select floor(2.14); --2