Hive3:常用的内置函数

打印 上一主题 下一主题

主题 1053|帖子 1053|积分 3163

1、检察函数列表

  1. -- 查看所有可用函数
  2. show functions;
  3. -- 查看count函数使用方式
  4. describe function extended count;
复制代码
2、数学函数

  1. -- round 取整,设置小数精度
  2. select round(3.1415926);                -- 取整(四舍五入)
  3. select round(3.1415926, 4);                -- 设置小数精度4位(四舍五入)
  4. -- 随机数
  5. select rand();                                        -- 完全随机
  6. select rand(3);                                        -- 设置随机数种子,设置种子后每次运行结果一致的
  7. -- 绝对值
  8. select abs(-3);
  9. -- 求PI
  10. select pi();
复制代码
3、集合函数


  1. -- 求元素个数
  2. select size(work_locations) from test_array;
  3. select size(members) from test_map;
  4. -- 取出map的全部key
  5. select map_keys(members) from test_map;
  6. -- 取出map的全部value
  7. select map_values(members) from test_map;
  8. -- 查询array内是否包含指定元素,是就返回True
  9. select * from test_array where ARRAY_CONTAINS(work_locations, 'tianjin');
  10. -- 排序
  11. select *, sort_array(work_locations) from test_array;
复制代码
4、类型转换函数


  1. -- 转二进制
  2. select binary('hadoop');
  3. -- 自由转换,类型转换失败报错或返回NULL
  4. select cast('1' as bigint);
复制代码

5、日期函数


  1. -- 当前时间戳
  2. select current_timestamp();
  3. -- 当前日期
  4. select current_date();
  5. -- 时间戳转日期
  6. select to_date(current_timestamp());
  7. -- 年月日季度等
  8. select year('2020-01-11');
  9. select month('2020-01-11');
  10. select day('2020-01-11');
  11. select quarter('2020-05-11');                --季度
  12. select dayofmonth('2020-05-11');
  13. select hour('2020-05-11 10:36:59');
  14. select minute('2020-05-11 10:36:59');
  15. select second('2020-05-11 10:36:59');
  16. select weekofyear('2020-05-11 10:36:59');
  17. -- 日期之间的天数
  18. select datediff('2022-12-31', '2019-12-31');
  19. -- 日期相加、相减
  20. select date_add('2022-12-31', 5);
  21. select date_sub('2022-12-31', 5);
复制代码
6、条件函数


  1. -- if判断
  2. SELECT if (truename is NULL,'没有填写姓名',truename) from users;
  3. --null判断
  4. SELECT isnull(truename) from users;
  5. SELECT isnotnull(truename) from users;
  6. --nvl ,如果字段值为null,则返回默认值,否则返回字段的值,等同于if判断的效果
  7. SELECT nvl(truename,'无姓名') from users;
  8. -- 返回第一个不是null的v,如果所有v都是null,则返回null
  9. SELECT COALESCE (truename,brithday) from users;
  10. -- 当a=b,返回c,当a=d时返回e,否则返回f
  11. SELECT username ,CASE username when '周杰轮' THEN '著名歌星' WHEN '张鲁依' THEN '著名演员' ELSE '未知人员' END FROM users;
  12. SELECT truename ,CASE when truename is null then '无姓名' ELSE truename end FROM users;
  13. --如果 a=b ,则返回null,否则返回a。
  14. SELECT truename ,NULLIF (truename,NULL) from users u ;
复制代码
7、字符串函数


  1. -- 连接字符串
  2. SELECT CONCAT(loginname,username)  FROM users u ;
  3. SELECT CONCAT_WS(',',loginname,username) from users u ;
  4. -- 统计长度
  5. SELECT username ,LENGTH (username) FROM users u ;
  6. -- 转换大小写
  7. SELECT LOWER('ABC')  ;
  8. SELECT UPPER('avc')  ;
  9. -- 去除收尾空格
  10. SELECT TRIM('  hadoop   ds   ')  ;
  11. -- 字符串分割
  12. SELECT split('aaaa,bbbb,ccc',',')[0];
复制代码
8、数据脱敏函数


  1. -- hash加密(结果是16进制字符串)
  2. SELECT mask_hash('hadoop');
复制代码
9、其他函数


  1. -- hash加密  结果是数字
  2. SELECT hash('aaahsdd');
  3. -- 当前用户
  4. SELECT CURRENT_USER();
  5. --当前数据库
  6. SELECT CURRENT_DATABASE();
  7. --hive版本
  8. SELECT VERSION();
  9. --计算md5
  10. SELECT MD5('HADOOP');
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表