hive函数大全

在hive内部有许多函数,如下:

内置运算符
关系运算符
算术运算符
逻辑运算符
复杂类型函数
内置函数内置聚合函数
数学函数
收集函数
类型转换函数
日期函数
条件函数
字符函数
内置聚合函数
内置表生成函数
1.1关系运算符

  1. 等值比较: =
  2. 等值比较:<=>
  3. 不等值比较: <>和!=
  4. 小于比较: <
  5. 小于等于比较: <=
  6. 大于比较: >
  7. 大于等于比较: >=
  8. 空值判断: IS NULL
  9. 非空判断: IS NOT NULL
  10. LIKE 比较: LIKE
  11. JAVA 的 LIKE 操作: RLIKE
  12. REGEXP 操作: REGEXP

1.2算术运算符

  1. 加法操作: +
  2. 减法操作: –
  3. 乘法操作: *
  4. 除法操作: /
  5. 取余操作: %
  6. 位与操作: &
  7. 位或操作: |
  8. 位异或操作: ^
    9.位取反操作: ~

1.3逻辑运算符

  1. 逻辑与: AND 、&&
  2. 逻辑或: OR 、|
  3. 逻辑非: NOT、!

1.4复杂类型函数

  1. 获取array中的元素
  2. 获取map中的元素
  3. 获取struct中的元素

2.1数学函数

  1. 取整函数: round(double a)         四舍五入
  2. 指定精度取整函数: round(double a,int d)  小数部分d位之后数字四舍五入
  3. 向下取整函数: floor(double a)       对给定数据进行向下舍入最接近的整数
  4. 向上取整函数: ceil(double a)        将参数向上舍入为最接近的整数
  5. 向上取整函数: ceiling(double a)
  6. 取随机数函数: rand
  7. 自然指数函数: exp(double a)        返回e的n次方
  8. 以 10 为底对数函数: log10
  9. 以 2 为底对数函数: log2
  10. 对数函数: log(double base,double a)    返回给定底数及指数返回自然对数
  11. 幂运算函数: pow(double a,double p)     返回某数的乘幂
  12. 幂运算函数: power(double a,double p)
  13. 开平方函数: sqrt             返回数值的平方根
  14. 二进制函数: bin
  15. 十六进制函数: hex
  16. 反转十六进制函数: unhex
  17. 进制转换函数: conv
  18. 绝对值函数: abs
  19. 正取余函数: pmod(int a,int b)
  20. 正弦函数: sin
  21. 反正弦函数: asin
  22. 余弦函数: cos
  23. 反余弦函数: acos
  24. positive 函数: positive(int a)    返回a的值
  25. negative 函数: negative(int a)    返回a的相反数

2.2收集函数

array/map类型大小: size         返回array/map类型的元素数量

2.3类型转换函数

基础类型之间强制转换:cast(field/expr as )

2.4日期函数

  1. UNIX 时间戳转日期函数: from_unixtime
  2. 获取当前 UNIX 时间戳函数: unix_timestamp
  3. 日期转 UNIX 时间戳函数: unix_timestamp
  4. 指定格式日期转 UNIX 时间戳函数: unix_timestamp
  5. 日期时间转日期函数: to_date
  6. 日期转年函数: year
  7. 日期转月函数: month
  8. 日期转天函数: day
  9. 日期转小时函数: hour
  10. 日期转分钟函数: minute
  11. 日期转秒函数: second
  12. 日期转周函数: weekofyear
  13. 日期比较函数: datediff
  14. 日期增加函数: date_add
  15. 日期减少函数: date_sub
  16. 日期查看函数: date_format
    17 日期函数:last_day 返回当前月最后一天日期

2.5条件函数

  1. if 函数: if(boolean condition,true_value,false_value)
  2. 非空查找函数: coalesce(v1,v2,v3…)      返回一组数据中第一个不为null的值
  3. 条件判断函数:case when a then b else c end  当值为a时返回b,否则返回c

2.6字符函数

  1. 字符 ascii 码函数:ascii
  2. base64 字符串
  3. 字符串连接函数:concat(String a,String b)           连接多个字符串,合并为一个字符串
  4. 带分隔符字符串连接函数:concat_ws(joinstr,String a,String b) 连接多个字符串,字符串之间以指定的分隔符分开
  5. 小数位格式化成字符串函数:format_number
  6. 字符串截取函数:substr(String a,int start),substring(String a,int start)从文本字符串指定的起始位置后的字符
  7. 字符串查找函数:instr
  8. 字符串长度函数:length
  9. 字符串查找函数:locate
  10. 字符串格式化函数:printf
  11. 字符串转换成 map 函数:str_to_map
  12. base64 解码函数:unbase64(string str)
  13. 字符串转大写函数:upper,ucase
  14. 字符串转小写函数:lower,lcase
  15. 去空格函数:trim
  16. 左边去空格函数:ltrim
  17. 右边去空格函数:rtrim
  18. 正则表达式替换函数:regexp_replace(string a,string b,string c) 字符串a中的b字符被c字符替代
  19. 正则表达式解析函数:regexp_extract
  20. URL 解析函数:parse_url
  21. json 解析函数:get_json_object(string json_string,string path) 拆分取值
  22. 空格字符串函数:space                      返回指定数量的空格
  23. 重复字符串函数:repeat(string a,int b)             重复b次a字符串
  24. 左补足函数:lpad
  25. 右补足函数:rpad
  26. 分割字符串函数: split
  27. 集合查找函数: find_in_set
  28. 分词函数:sentences(string a)                  将字符串中内容按语句分组,每个单词间以逗号分隔,最后返回数组
  29. 分词后统计一起出现频次最高的 TOP-K
  30. 分词后统计与指定单词一起出现频次最高的 TOP-K
  31. 倒序字符串:reverse
  32. ngrams
  33. context_ngrams
  34. first_value/last_value         返回当前列第一个(最后一个)值
  35. lag/lead                       返回当前值的前后值

3.内置聚合函数

  1. 个数统计函数: count
  2. 总和统计函数: sum
  3. 平均值统计函数: avg
  4. 最小值统计函数: min
  5. 最大值统计函数: max
  6. 返回指定列的方差: var_pop
  7. 返回指定列的样本方差: var_samp
  8. 返回指定列的偏差: stddev_pop
  9. 返回指定列的样本偏差: stddev_samp
  10. 两列数值协方差:covar_pop
  11. 两列数值样本协方差:covar_samp
  12. 返回两列数值的相关系数:corr(col1,col2)
    13.中位数函数: percentile
  13. 近似中位数函数: percentile_approx
  14. 直方图: histogram_numeric
  15. 集合去重数:collect_set
  16. 集合不去重函数:collect_list

4.内置表生成函数

  1. array/map拆分多行:explode
    2.json_tuple

测试:

1.1关系运算符

关系运算符:= <=> > >= < <=

– select 5<=>5 true
– select 6>=5 true
– select 8<=7 false
like/rlike比较

– select ‘football’ like ‘foot%’ true
– select ‘2697566722@qq.com’ rlike ‘\@[0-9a-z]{2,}.(com|cn|org|edu)’ true
regexp

– select ‘football’ regexp ‘\w{9,}[a-z]’ false
1.2算术运算符

复制代码
– select 5+5 10
– select 5-5 0
– select 5*5 25
– select 5/5 1
– select 5%4 1
– select 5&9 1
– select 5|9 13
– select 5^9 12
复制代码
1.4复杂类型函数

– select array(1,4,5,6,8) [1,4,5,6,8]
– select map(‘name’,‘张三’,‘age’,18) {“name”:“张三”,“age”:“18”}
– select struct(array(1,3,5),map(‘name’,‘张三’,‘age’,18)) {“col1”:[1,3,5],“col2”:{“name”:“张三”,“age”:“18”}}
2.1数学函数

复制代码
– select round(5.3423) 5
– select round(5.345,2) 5.35
– select floor(5.9) 5
– select ceil(5.1) 6
– select rand() 0.7311469360199058
– select exp(2) 7.38905609893065
– select log(5,25) 2
– select pow(2,3) 8
– select sqrt(25) 5
– select bin(8) 1000
– select hex(16) 10
– select unhex(100)
– select abs(-10) 10
– select pmod(5,2) 1
– select sin(3.1415926/2) 0.9999999999999997
– select asin(0.9999999999999997) 1.5707963009853283
– select positive(10) 10
– select negative(10) -10
复制代码
2.2收集函数

– select size(array(1,3,4,5,6,7,8)) 7
2.4日期函数

复制代码
– select from_unixtime(0,‘yyyy-MM-dd HH:mm:ss’) 1969-12-31 19:00:00
– select unix_timestamp() 1598707426
– select to_date(‘2020-1-1’) 2020-01-01
– select year(current_date()) 2020
– select month(current_date()) 8
– select day(current_date()) 29
– select hour(current_timestamp()) 9
– select minute(current_timestamp()) 26
– select second(current_timestamp()) 15
– select weekofyear(current_date()) 35
– select datediff(current_date(),‘2020-08-01’) 28
– select date_add(current_date(),1) 2020-08-30
– select date_sub(current_date(),1) 2020-08-28
– select date_format(current_date(),‘y’) 2020
– select last_day(‘2020-01-02’) 2020-01-31
复制代码
2.5条件函数

– select if(1=3,3,2) 2
– select coalesce(null,3,null,4) 3
– select case when 5>9 then 4 else 0 end 0
2.6字符函数

复制代码
– select ascii(‘,’) 44
– select concat(‘张三’,‘吃饭’) 张三吃饭
– select concat_ws(‘-’,‘张三’,‘干嘛去了’) 张三-干嘛去了
– select format_number(2.4234432532,3) 2.423
– select substr(87654321,3,2) 65
– select instr(‘张三在哪’,‘在’) 3
– select length(‘324322’) 6
– select locate(‘吗’,‘吃了吗’) 3
– select printf(‘你好’) 你好
– select str_to_map(‘name:李四,age:18’,‘,’,‘:’) {“name”:“李四”,“age”:“18”}
– select upper(‘abc’) ABC
– select lower(‘ABC’) abc
– select trim(’ 你好 ‘) 你好
– select regexp_replace(‘早上好’,‘早’,‘晚’) 晚上好
– SELECT regexp_extract(‘100-200’, ‘(\d+)-(\d+)’, 1) FROM src LIMIT 1 100
– select parse_url(‘https://home.cnblogs.com/u/afeiiii/’,‘PROTOCOL’) https
– select id,get_json_object(line,’ . n a m e ′ ) n a m e , g e t j s o n o b j e c t ( l i n e , ′ .name') name,get_json_object(line,' .name)name,getjsonobject(line,.age’) age,get_json_object(line,‘$.gender’) gender from jsontest
– select repeat(‘a’,4) aaaa
– select split(‘howAareByou’,‘[AB]’) [“how”,“are”,“you”]
– select find_in_set(‘aa’,‘aa,bb,aa’) 1
– select sentences(‘你,吃了吗’) [[“你”,“吃了吗”]]
复制代码
4.内置表生成函数

–explode(a) - separates the elements of array a into multiple rows, or the elements of a map into multiple rows and columns   explode适合array/map的拆分
–select id,t.name,t.age,t.gender from jsontest lateral view json_tuple(line,‘name’,‘age’,‘gender’)t as name,age,gender json_tuple适合String类型拆分

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/18795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js中什么是宏任务、微任务?宏任务、微任务有哪些?又是怎么执行的?

目录 目录 目录 参考资料 必看强烈建议十分钟看完视频 &#xff0c;即可学会 必看参考详解宏任务微任务 参考资料 1 宏任务与微任务_哔哩哔哩_bilibili 什么是宏任务、微任务&#xff1f;宏任务、微任务有哪些&#xff1f;又是怎么执行的&#xff1f;_什么是宏任务和微任…

简单的知识图谱可视化+绘制nx.Graph()时报错TypeError: ‘_AxesStack‘ object is not callable

绘制nx.Graph时报错TypeError: _AxesStack object is not callable 写在最前面知识图谱可视化预期报错可能的原因 原代码原因确认解决后的代码解决&#xff01; 写在最前面 实现一个简单的知识图谱的可视化功能。 使用了NetworkX库来构建知识图谱&#xff0c;并使用matplotlib…

基于Java的房屋租赁系统设计与实现(源码+lun文+数据库)

对于需要租房的人&#xff0c;有的可能没有时间去街上广告处查看房屋信息&#xff1b;对于房屋出租者来说&#xff0c;大量复杂的房产信息、租金等信息很难通过传统的方式进行管理。以方便租客租房&#xff0c;房东求租、求售的需求为向导&#xff0c;开发一套基于web的房屋管理…

打印时钟在终端上,输入quit,结束时钟

一、书写守护进程 步骤&#xff1a; 创建一个孤儿进程创建一个新的会话组修改运行目录到不可卸载的文件系统重设文件权限掩码关闭所有文件描述符 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int main(i…

PHP代码审计--理论

提供资料&#xff1a; php 基础 : https://www.runoob.com/php/php-tutorial.html php是什么&#xff1f; PHP 是服务器端脚本语言。 首先在学习PHP前需要对HTML 和CSS有一定的认识 PHP 能做什么&#xff1f; PHP 可以生成动态页面内容PHP 可以创建、打开、读取、写入、关…

Unity中UGUI的 OnPopulateMesh函数与VertexHelper类

Graphics类 当一个UGUI的UI元素生成顶点数据时会调用Graphics类中的 OnPopulateMesh(VertexHelper vh) 函数&#xff0c;我们可以在这个函数中修改顶点的数据或者获取顶点的数据。 UGUI中与显示相关的控件&#xff0c;例如Image、Text、RawImage等都继承自MaskableGraphic类&a…

数据结构--单链表

前言 上一章&#xff0c;我们讲了数据结构--动态顺序表&#xff0c;我们会发现有以下问题&#xff1a; 1.当我们要头部或者插入或删除时&#xff0c;都需要进行位置挪动&#xff0c;腾出某一个位置&#xff0c;时间复杂度为0(N)&#xff1b; 2.增容需要申请新空间&#xff0c;…

SpringBoot2.2.0.RELEASE整合Elasticsearch6.8.3

SpringBoot2.2.0.RELEASE整合Elasticsearch6.8.3 SpringBoot是2.2.0.RELEASE&#xff0c;elasticsearch是6.8.3 使用依赖spring-boot-starter-data-elasticsearch 使用ElasticSearchRepository操作 1、导入依赖 <?xml version"1.0" encoding"UTF-8&quo…

AcWing 4575. Bi数和Phi数

文章目录 题意:思路:代码 题意: 就是给你n个数&#xff0c;对于每一个数y你都需要找到一个最小x使得 ϕ ( x ) ≥ y \phi(x) \ge y ϕ(x)≥y&#xff0c;然后再求一个最小平和。 思路: 其实最开始以来的思路就是二分&#xff0c;我先进行线性筛求出每个数的欧拉函数&#xf…

VMware Linux Centos 配置网络并设置为静态ip

在root用户下进行以下操作 1. 查看子网ip和网关 &#xff08;1&#xff09;进入虚拟网络编辑器 &#xff08;2&#xff09;进入NAT设置 &#xff08;3&#xff09;记录子网IP和子网掩码 2. 修改网络配置文件 &#xff08;1&#xff09;cd到网络配置文件路径下 [rootlo…

工欲善其事必先利其器,IT工作电脑更要维护好

目录 一&#xff1a;电脑的组成 二&#xff1a;维护措施 三&#xff1a;助力记忆 一&#xff1a;电脑的组成 当谈到电脑主机时&#xff0c;我们通常指的是电脑的中央处理器(CPU)、内存、主板、电源、硬盘、显卡、声卡、网卡等核心部件组成的整体。这些部件共同协作&#xff…

嗅探机制在3pc,DCL,equals,布隆过滤器,raft的readINdex上的应用总结

推荐文章 1 3PC 2 DCL双检锁 3 看似简单的hashCode和equals面试题&#xff0c;竟然有这么多坑&#xff01; 总结 各种体现了嗅探机制的应用场景 嗅探机制&#xff0c;又称探测机制&#xff0c;是一种检查、探测系统状态或者环境的一种手段。在不同的场景和系统中&#xff0…

Kafka系列之:记录一次Kafka Topic分区扩容,但是下游flink消费者没有自动消费新的分区的解决方法

Kafka系列之:记录一次Kafka Topic分区扩容,但是下游flink消费者没有自动消费新的分区的解决方法 一、背景二、解决方法三、实现自动发现新的分区一、背景 生产环境Kafka集群压力大,Topic读写压力大,消费的lag比较大,因此通过扩容Topic的分区,增大Topic的读写性能理论上下…

力扣 62. 不同路径

题目来源&#xff1a;https://leetcode.cn/problems/unique-paths/ C题解1&#xff1a;动态规划。声明二维数组。 确定dp数组&#xff08;dp table&#xff09;以及下标的含义。dp[i][j] &#xff1a;表示从&#xff08;0 &#xff0c;0&#xff09;出发&#xff0c;到(i, j) …

Kafka-Broker工作流程

kafka集群在启动时&#xff0c;会将每个broker节点注册到zookeeper中&#xff0c;每个broker节点都有一个controller&#xff0c;哪个controller先在zookeeper中注册&#xff0c;哪个controller就负责监听brokers节点变化&#xff0c;当有分区的leader挂掉时&#xff0c;contro…

一行命令删除tag为<none>的镜像

sudo docker images | grep none | awk {print $3;} | xargs sudo docker rmi

DBeaver开源数据库管理工具发布23.1.3版本

导读DBeaver开源数据库管理软件近日发布了v23.1.3版本,该版本在空间数据查看器、数据传输、数据编辑器等多个模块进行了优化,提升了软件的可用性和兼容性。 具体来看,空间数据查看器新增了地图对象标记和曲线渲染支持,也实现了坐标复制等功能。数据传输模块增强了XLSX文件导入和…

【JVM】什么是双亲委派机制

文章目录 1、类加载机制2、双亲委派模型2.1、介绍2.2、为什么需要双亲委派2.3、源码解析 3、破坏双亲委派3.1、介绍3.2、破坏实现3.3、破坏双亲委派的例子 4、线程上下文类加载器 1、类加载机制 类加载阶段分为加载、连接、初始化三个阶段&#xff0c;而加载阶段需要通过类的全…

Vue2(初识vue)

目录 一&#xff0c;Vue2简介1.1&#xff0c;什么是vue1.2&#xff0c;初始vue1.3&#xff0c;搭建vue环境1.4&#xff0c;第一个hello world 二&#xff0c;基础知识2.1 指令2.2-1 指令v-text2.2-2 指令v-html2.2-3 指令v-if2.2-4 指令v-else2.2-5 指令v-show2.2-6 v-if指令与…

深入学习 Redis - 渐进式遍历 scan 命令、数据库管理命令

目录 前言 一、scan 命令 二、数据库管理命令 select dbsize flushdb / flushall 前言 之前我们所了解到的 keys * 是一次性把整个 redis 中所有的 key 都获取到&#xff0c;但是整个操作比较危险&#xff0c;可能会一下子的都太多的 key&#xff0c;阻塞 redis 服务器. …