Hive内置函数大全

                                    Hive内置函数大全

 

目录

                                    Hive内置函数大全

1.复合类型构造函数

2 复合类型操作符

3 数值计算函数

4 日期函数

5 条件函数

6 字符串函数

7 汇总统计函数(UDAF)

8 表格生成函数(UDTF) 

9 类型转换函数

10 数学函数

11 数学运算

12 逻辑运算

13 排序函数

14 混合函数

15 XPath解析XML函数


1.复合类型构造函数

函数描述举例
mapmap(key0, value0, key1, value1…)——使用给定的键/值对创建映射
structstruct(col1, col2, col3,…)——用给定的字段值创建一个struct。STRUCT可以包含不同数据类型的元素。这些元素可以通过”点语法”的方式来得到所需要的元素
named_structnamed_struct(name1, val1, name2, val2,…)——用给定的字段名和值创建一个结构体,使用给定的表达式,构造一个指定列名的 struct 数据结构
arrayarray(n0, n1…)——用给定的元素创建一个数组
create_unioncreate_union (tag, val1, val2, …)使用给定的 tag 和表达式,构造一个 uniontype 数据结构。tag 表示使用第 tag 个
表达式作为 uniontype 的 value

2 复合类型操作符

函数描述举例
Map[key];size(Map<k .V>)返回 map 结构 M 中 key 对应的 value,没有对应的 key 返回 NULL;返回map类型的长度

S.x返回 struct 结构 S 中名为 x 的元素。

 

A[n];size(Array)返回数组 A 中第 n 个索引的元素值,数组的起始下标为0;返回array类型的长度
array_contains(array, value)如果数组包含值,则返回TRUE。

3 数值计算函数

函数描述举例
round(x[,d])四舍五入(x[, d])——将x四舍五入到d的小数位
floor(x)求不大于x的最大整数,向下取整函数
ceil(x),ceiling(x)求不小于x的最小整数,向上取整函数
rand([seed])返回0到1之间的伪随机数
exp(x)返回e的x次方
log10(x)返回以10为底的x的对数
log2(x)返回以2为底的x的对数
log([b], x)返回以b为底的x的对数
pow(x1, x2),power(x1, x2)取x1的x2次方
sqrt(x)开平方函数,返回√x
bin(n)返回n的二进制
hex(n, bin, or str)将参数转换为十六进制,

如果参数是字符串,则为字符串中的每个字符返回两个十六进制数字。

如果参数是数字或二进制,则返回十六进制表示

unhex(str)将十六进制参数转换为二进制
conv(num, from_base, to_base)将num从from_base转换为to_base,如果to_base是负数,则将num视为带符号整数,否则将其视为无符号整数。
abs(x)返回x的绝对值
pmod(a,b)a对b取模
sin(x)返回sinx (x以弧度为单位)
asin(x)返回arcsin (x)如果-1<=x<=1,否则返回NULL
cos(x)返回cosx (x以弧度为单位)
acos(x)返回arccos (x)如果-1<=x<=1,否则返回NULL
positive(x)返回x
negative(x)返回-x

4 日期函数

函数描述举例
from_unixtime(unix_time, format)UNIX时间戳转日期函数,返回指定格式的unix_time
unix_timestamp(date[, pattern])将时间转换为数字,获取当前(指定)UNIX时间戳函数
current_timestamp获取当前UNIX时间戳函数
to_date(expr)提取date或datetime表达式expr的date部分,日期时间转日期函数
year(param)返回日期/时间戳/间隔的year
month(param)返回日期/时间戳/间隔的month
day(param)返回日期/时间戳/间隔的day
hour(param)返回日期/时间戳/间隔的hour
minute(param)返回日期/时间戳/间隔的minute
second(param)返回日期/时间戳/间隔的second
weekofyear(date)

返回给定日期的年份的星期。一周被认为从周一开始,第一周是>第3天的第一周。

datediff(date1, date2)返回date1和date2之间的天数
date_add(start_date, num_days)日期增加函数,返回start_date之后的num_days日期。
date_sub日期减少函数,返回start_date之前的num_days日期。

5 条件函数

函数描述举例
IF(expr1,expr2,expr3)如果expr1为真(expr1 <> 0和expr1 <> NULL),则If()返回expr2;否则返回expr3。IF()返回一个数值或字符串值,这取决于使用它的上下文。
CASE

① CASE

          WHEN a THEN b

          [WHEN cTHEN d]... 

          [ELSE e] END

这种case,case后面没有表达式,用于处理单个列的查询结果

②CASE a

         WHEN b THEN c

         [WHENd THEN e]...

         [ELSE f] END

这种CASE A和if差不多,如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f

 
 COALESCE(T v1, T v2, …)返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL 

6 字符串函数

函数描述举例
ascii(str)返回str的第一个字符的数值
base64(bin)将参数从二进制转换为以64为基数的字符串
concat(str1, str2, ... strN

返回str1、str2、…strN或concat(bin1, bin2,…返回二进制数据bin1, bin2,…binN

如果任何参数为空,则返回NULL。

concat_ws(separator, [string | array(string)]+)返回由分隔符分隔的字符串的连接。
format_number(X, D or F)将数字X格式化为'#,###,###。,四舍五入到D位小数,或者使用指定的F格式进行格式化,并将结果作为字符串返回。如果D为0,则结果没有小数点或小数部分。这应该像MySQL的格式一样工作
substr(str, pos[, len]),substring(str, pos[, len])返回从pos开始的长度为len的字节数组片段
instr(str, substr)返回str中第一次出现substr的索引
length(str | binary) 返回二进制数据中的str长度或字节数
locate(substr, str[, pos])返回位置pos之后str中第一次出现substr的位置
printf(String format, Obj... args)该函数可以根据printf样式的格式字符串格式化字符串
str_to_map(text, delimiter1, delimiter2)使用两个分隔符将文本分割为键值对。第一个分隔符分隔对,第二个分隔符分隔键和值。如果只给出一个参数,则使用默认分隔符:','作为delimiter1,':'作为delimiter2。
unbase64(str)将参数从基本的64字符串转换为二进制
upper(str),ucase(str)返回所有字符都更改为大写的str
lower(str),lcase(str)返回所有字符都更改为小写的str
trim(str)从str中删除前导和尾随空格字符
ltrim(str)从str中删除前导空格字符
rtrim(str)从str中删除尾随空格字符
regexp_replace(str, regexp, rep)用rep替换所有匹配regexp的str子字符串
regexp_extract(str, regexp[, idx])提取匹配regexp的组
parse_url(url, partToExtract[, key])从URL中提取一部分
get_json_object(json_txt, path)根据指定的json路径从json字符串中提取json对象,并返回提取的json对象的json字符串。如果输入的json字符串无效,则返回null。
space(n)返回n个空格
repeat(str, n)重复str n次
lpad(str, len, pad)返回str,用pad左填充到len的长度
rpad(str, len, pad)返回str,右填充pad到len的长度
split(str, regex)

拆分匹配正则表达式的str

find_in_set(str,str_array)返回str_array中第一个出现的str,其中str_array是一个逗号分隔的字符串。如果其中一个参数为空,则返回null。如果第一个参数有逗号,则返回0。
sentences(str, lang, country)将str拆分为句子数组,其中每个句子都是单词数组。“lang”和“country”参数是可选的,如果省略,则使用默认

7 汇总统计函数(UDAF)

函数描述
①count(*)②count(expr)③count(DISTINCT expr[, expr...])个数统计:①返回检索到的行总数,包括包含空值的行②返回提供的表达式为非空的行数③返回所提供的表达式惟一且非空的行数。
sum(x)总和统计,返回一组数字的和
avg(x)平均值统计
min(x)最小值统计
max(x)最大值统计
var_pop(x)非空集合总体变量函数
var_samp(x)非空集合样本变量函数
stddev_pop(x)总体标准偏离函数
stddev_samp样本标准偏离函数
percentile(expr, pc)中位数函数,返回expr在pc上的百分位数(范围:[0,1])。pc可以是双数组或双数组
percentile_approx(expr, pc, [nb])近似中位数函数
histogram_numeric(expr, nb)直方图
collect_set(x)集合去重数,返回一组消除了重复元素的对象
collect_list(x)集合不去重函数,返回具有重复项的对象列表

8 表格生成函数(UDTF) 

函数描述
explode(a)将数组a的元素分隔为多行,或将映射的元素分隔为多行和多列

9 类型转换函数

函数描述
binary(a)将a转换为二进制
cast基础类型之间强制转换

 

10 数学函数

函数描述
=等值比较
<=>等值比较
<>和!=不等值比较
<小于比较
<=小于等于比较
>=大于比较
IS NULL空值判断
IS NOT NULL非空判断
LIKELIKE比较
RLIKEJAVA的LIKE操作
REGEXPREGEXP操作(如果str匹配REGEXP,则返回true,否则返回false)

11 数学运算

函数描述
+加法操作
减法操作
*乘法操作
/除法操作
%取余操作
&位与操作
|位或操作
^位异或操作
~位取反操作

12 逻辑运算

函数描述
AND 、&&逻辑与操作
OR 、||逻辑或操作
NOT、!逻辑非操作

13 排序函数

rank()

相同的排序是一样的,但是下一个小的会跳着排序,比如

等级 排序

 

dense_rank()

相同的排序相同,下一个小的会紧挨着排序,这样总个数是相对减少的,适合求某些指标前几个等级的个数。

 
row_number()

顺序排序,总个数是不变的,适合求某些值的前几名

 

14 混合函数

函数描述
java_method(class,method[,arg1[,arg2..]])使用反射调用方法
reflect(class,method[,arg1[,arg2..]])使用反射调用方法
hash(a1, a2, ...)返回参数的哈希值

 

15 XPath解析XML函数

函数描述
xpath(xml, xpath)返回匹配xpath表达式的xml节点中的值的字符串数组
xpath_string(xml, xpath)返回匹配xpath表达式的第一个xml节点的文本内容
xpath_boolean(xml, xpath)计算布尔xpath表达式

xpath_short(xml, xpath)

,xpath_int, xpath_long,xpath_float, xpath_double, xpath_number

返回与xpath表达式匹配的short...

 

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

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

相关文章

python-mysql超简单银行转账

1首先先建数据库bank&#xff0c;数据结构表的名称为accoment&#xff1a; 2.python与mysql交互代码如下&#xff1a; # coding utf-8 # 1.导入模块 from pymysql import * import sys import pymysql# 2.接受命令行参数 if __name__ __main__:source_acctid 11target_acctid…

Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞

漏洞名称&#xff1a;Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞CNNVD编号&#xff1a;CNNVD-201311-054发布时间&#xff1a;2013-11-06更新时间&#xff1a;2013-11-06危害等级&#xff1a; 漏洞类型&#xff1a;信息泄露威胁类型&#xff1a;本地CVE编号&#x…

LeetCode 948. 令牌放置(贪心)

文章目录1. 题目2. 解题1. 题目 你的初始能量为 P&#xff0c;初始分数为 0&#xff0c;只有一包令牌。 令牌的值为 token[i]&#xff0c;每个令牌最多只能使用一次&#xff0c;可能的两种使用方法如下&#xff1a; 如果你至少有 token[i] 点能量&#xff0c;可以将令牌置为…

Python 中操作 MySQL 步骤

1.引入模块 在py文件中引入pymysql模块 from pymysql import *2.Connection 对象 用于建立与数据库的连接 创建对象&#xff1a;调用connect()方法 connconnect(参数列表)参数host&#xff1a;连接的mysql主机&#xff0c;如果本机是localhost参数port&#xff1a;连接的m…

nacos配置中心配置已经常见错误总结

&#x1f4bb;目录 前言1、基础架构2、依赖3、配置文件3.1、bolg-product配置文件3.1.1、application.yml配置文件3.1.2、bootstrap.yml配置文件3.1.3、nacos远程配置 3.2、bolg-system3.1.1、application.yml配置文件3.1.2、bootstrap.yml配置文件3.2.3、nacos远程配置 4、测试…

Hive解题思路

Hive解题思路 1 相关知识讲解 1.1 HQL语句的语法 sql语句的语法&#xff1a; select ..... from .... join ..... where .....group by ... having...order by|sort by|cluster by|distribute by .... &#xff08;1&#xff09;group by&#xff1a;按照某些字段的值进行…

tcl/tk demo

环境及版本说明: OSX10.9 tclsh -> tclsh8.5 wish -> wish8.5 查看本机运行环境: 1 which wish; 2 /usr/bin/wish 1 which tclsh; 2 /usr/bin/tclsh Demo功能说明: 用户登录窗口,输入用户名,密码.与文件中存储内容校验,如果相等,则提示"登录成功",否则提示&qu…

Hive高级操作

Hive高级操作 1 Hive的数据类型 1.1 原子数据类型 &#xff08;1&#xff09;Hive 是用 Java 开发的&#xff0c;Hive 里的基本数据类型和 java 的基本数据类型也是一一对应的&#xff0c; 除了 String 类型。 &#xff08;2&#xff09;有符号的整数类型&#xff1a;TINYIN…

05.序列模型 W2.自然语言处理与词嵌入(作业:词向量+Emoji表情生成)

文章目录作业1&#xff1a;1. 余弦相似度2. 单词类比3. 词向量纠偏3.1 消除对非性别词语的偏见3.2 性别词的均衡算法作业2&#xff1a;Emojify表情生成1. Baseline model: Emojifier-V11.1 数据集1.2 模型预览1.3 实现 Emojifier-V11.4 在训练集上测试2. Emojifier-V2: Using L…

LeetCode 688. “马”在棋盘上的概率(DP)

文章目录1. 题目2. 解题1. 题目 已知一个 NxN 的国际象棋棋盘&#xff0c;棋盘的行号和列号都是从 0 开始。即最左上角的格子记为 (0, 0)&#xff0c;最右下角的记为 (N-1, N-1)。 现有一个 “马”&#xff08;也译作 “骑士”&#xff09;位于 (r, c) &#xff0c;并打算进行…

LeetCode 第 36 场双周赛(304/2204,前13.8%)

文章目录1. 比赛结果2. 题目1. LeetCode 5515. 设计停车系统 easy2. LeetCode 5516. 警告一小时内使用相同员工卡大于等于三次的人 medium3. LeetCode 5518. 给定行和列的和求可行矩阵 medium4. LeetCode 5517. 找到处理最多请求的服务器 hard1. 比赛结果 做出来3题&#xff0…

数据库实例:用户注册

1.根据结构创建表的脚本如下 createtable py_users( id int unsigned auto_increment not null primary key, uname varchar(20) not null, upwd char(40) not null, is_delete bit not null default 0 ); 如下流程图&#xff0c;接下来的代码就按照这个逻辑来写 2.创建user…

HBase原理

目录 HBase原理 1 HBase架构 2 HBase中的核心概念 3 HBase的存储机制 4 HBase的寻址机制 5 HBase的读写流程 6 HBase的设计 7 HBase和Hive的整合 HBase原理 1 HBase架构 HBase的架构为主从架构&#xff0c;HMaster为主节点&#xff0c;HRegionServer为从节点 &#x…

数据库实例:用户登录

如下遍流程图&#xff0c;接下来的代码就按照这个逻辑来写 创建user_login.py文件&#xff0c;代码如下 #codingutf-8 from MySQLdb import* from hashlib importsha1 if __name____main__: try: #接收输入用户名、密码 unameraw_input(请输入用户名&…

数据库实例:mysql与mongo结合用户登录

加入mongodb后登录逻辑如下图&#xff0c;将图中nosql的位置换为mongodb即可 用户数据存储的集合名称为py_users&#xff0c;文档格式为{uname:用户名,upwd:密码} 将原来MySQL操作的代码封装到一个方法中&#xff0c;代码如下 def mysql_login(): #mongodb中没有则到mysql中…

LeetCode 1609. 奇偶树(层序遍历)

文章目录1. 题目2. 解题1. 题目 如果一棵二叉树满足下述几个条件&#xff0c;则可以称为 奇偶树 &#xff1a; 二叉树根节点所在层下标为 0 &#xff0c;根的子节点所在层下标为 1 &#xff0c;根的孙节点所在层下标为 2 &#xff0c;依此类推。偶数下标 层上的所有节点的值都…

数据的特征工程

数据的特征工程 1 什么是数据的特征工程 特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程&#xff0c;从而提高了对未知数据的模型准确性。 特征工程的意义&#xff1a;将直接影响模型的预测结果。 2 数据的来源与类型 2.1 数据的来源 企业日益积累…

数据库实例:mysql与redis结合用户登录

加入redis后登录逻辑如下图&#xff0c;将图中nosql的位置换为redis即可 用户数据存的键为用户名&#xff0c;值为密码 将原来MySQL操作的代码封装到一个方法中&#xff0c;代码如下 defmysql_login(): #redis中没有则到mysql中查询 sqlselect upwd from py_users wher…

LeetCode 1610. 可见点的最大数目(atan2函数求夹角)

文章目录1. 题目2. 解题1. 题目 给你一个点数组 points 和一个表示角度的整数 angle &#xff0c;你的位置是 location &#xff0c;其中 location [posx, posy] 且 points[i] [xi, yi] 都表示 X-Y 平面上的整数坐标。 最开始&#xff0c;你面向东方进行观测。你 不能 进行…

[翻译]API Guides - Bound Services

官方文档原文地址&#xff1a;http://developer.android.com/guide/components/bound-services.html 一个Bound Service是一个客户端-服务器接口的服务。一个Bound Service允许组件&#xff08;像activity&#xff09;绑定一个service&#xff0c;发送请求&#xff0c;接受结果…