hive函数大全

合集下载

Hive常用函数大全-字符串函数

Hive常用函数大全-字符串函数

Hive常⽤函数⼤全-字符串函数1、字符串长度函数:length(X)(返回字符串X的长度)select length('qwerty') from table--62、字符串反转函数:reverse(X)(返回字符串X反转的结果)select reverse('qwerty') from table--ytrewq3、字符串连接函数:concat(X,Y,...)(返回输⼊字符串连接后的结果,⽀持任意个输⼊字符串连接)select concat('abc','qwe','rty') from table--abcqwerty4、带分隔符字符串连接函数:concat_ws(X,y,Z)(返回输⼊字符串连接后的结果,X表⽰各个字符串间的分隔符)select concat_ws('/','abc','qwe','rty') from table--abc/qwe/rty5、字符串截取函数:substr(X,Y,Z)/substring(X,Y,Z)(返回字符串X从Y位置开始,截取长度为Z的字符串)select substr('qwerty',1,3) from table--qwe6、字符串转⼤写函数:upper(X)/ucase(X)(返回字符串X的⼤写格式)select upper('qwERt') from table--QWERTselect ucase('qwERt') from table--QWERT7、字符串转⼩写函数:lower(X)/lcase(X)(返回字符串X的⼩写格式)select lower('qwERt') from table--qwertselect lcase('qwERt') from table--qwert8、去空格函数:trim(X)(去除X字符串两边的空格)select trim(' qwe rty uiop ') from table--'qwe rty uiop'左边去空格函数:ltrim(X)(去除X字符串左边的空格)select ltrim(' qwe rty uiop ') from table--'qwe rty uiop '右边去空格函数:rtrim(X)(去除X字符串右边的空格)select rtrim(' qwe rty uiop ') from table--' qwe rty uiop'9、正则表达式替换函数:regexp_replace(X,Y,Z)(将字符串X中的符合java正则表达式Y的部分替换为Z:将X中与Y相同的字符串⽤Z替换)select regexp_replace('foobar', 'o|ar', '234') from table--f234234b23410、正则表达式解析函数:regexp_extract(X,Y,Z)(将字符串X按照Y正则表达式的规则拆分,返回Z指定的字符)select regexp_extract('foothebar', 'foo(.*?)bar', 0) from table--foothebarselect regexp_extract('foothebar', 'foo(.*?)bar', 1) from table--theselect regexp_extract('foothebar', 'foo(.*?)bar', 2) from table--bar11、URL解析函数:parse_url(X,Y,Z)(返回URL中指定的部分。

Hive函数总结

Hive函数总结

Hive函数总结查找系统⾃带函数: show functions;排序:ORDER BY : 全局排序,只有⼀个reducer, ASC(ascend)升序(默认); DESC(descend)降序SORT BY : 每个MapReduce内部排序 对于⼤规模的数据集 order by 的效率⾮常低,在很多情况下,并不需要全局排序,这时就可以使⽤ sort byDISTRIBUTE BY: 分区排序系统内置函数 查看系统⾃带的函数:show functions; 显⽰⾃带的函数的⽤法:desc functions ⽅法名; 详细显⽰⾃带的函数的⽤法:desc functions extended ⽅法名;常⽤内置函数:空字段赋值: NVL: 给值为Null的数据赋值,它的格式是NVL(value , default_value)。

它的功能是如果value为NULL,则NVL函数返回default_value的值,否则返回value的值,如果两个参数都为NULL ,则返回NULL。

⾏转列:CONCAT(string A/col , string B/col ...): 返回输⼊字符串连接后的结果,⽀持任意个输⼊字符串;将两个字段以,进⾏连接返回⼀个字段以base为字段名输出:CONCAT_WS(separator, str1, str2,...):它是⼀个特殊形式的 CONCAT()。

第⼀个参数剩余参数间的分隔符。

分隔符可以是与剩余参数⼀样的字符串。

如果分隔符是 NULL,返回值也将为 NULL。

这个函数会跳过分隔符参数后的任何 NULL 和空字符串。

分隔符将被加到被连接的字符串之间;COLLECT_SET(col):函数只接受基本数据类型,它的主要作⽤是将某字段的值进⾏去重汇总,产⽣array类型字段。

selectt1.base,concat_ws('|', collect_set()) namefrom(selectname,concat(constellation, ",", blood_type) basefromperson_info) t1group byt1.base;列转⾏:EXPLODE(col):将hive⼀列中复杂的array或者map结构拆分成多⾏。

hive 常用的函数

hive 常用的函数

hive 常用的函数Hive是一个建立在Hadoop上的数据仓库工具,常用于大数据处理和分析。

在Hive中,有许多内置的函数可以帮助用户进行数据处理和转换。

以下是一些Hive 常用的函数:1. 字符串函数:- CONCAT:用于连接两个或多个字符串。

- SUBSTR:用于获取字符串的子串。

- LENGTH:用于获取字符串的长度。

- UPPER和LOWER:用于将字符串转换为大写或小写。

- TRIM:用于去除字符串两端的空格。

2. 数学函数:- ROUND:用于对数字进行四舍五入。

- ABS:用于获取数字的绝对值。

- CEIL和FLOOR:分别用于向上取整和向下取整。

- POWER:用于计算一个数字的指数幂。

- SQRT:用于计算一个数字的平方根。

3. 日期函数:- TO_DATE:用于将字符串转换为日期类型。

- YEAR、MONTH、DAY:分别用于获取日期的年、月、日部分。

- DATEDIFF:用于计算两个日期之间的天数差。

- DATE_ADD和DATE_SUB:用于对日期进行加减操作。

4. 数组函数:- SIZE:用于获取数组的长度。

- ARRAY_CONTAINS:用于判断数组中是否包含某个元素。

- ARRAY_MAX和ARRAY_MIN:分别用于获取数组中的最大值和最小值。

- ARRAY_JOIN:用于将数组转换为字符串。

5. 条件函数:- CASE WHEN:用于在查询中实现条件判断。

- COALESCE:用于获取第一个非空的值。

- NVL:用于将空值替换为指定的默认值。

- IF和IFNULL:用于实现简单的条件判断。

以上是一些Hive中常用的函数,通过合理使用这些函数,可以更高效地进行数据处理和转换。

在实际应用中,根据具体的需求和数据类型选择合适的函数是非常重要的。

希望以上内容对您有所帮助。

hive中的常用函数

hive中的常用函数

Hive是一种基于Hadoop的数据仓库工具,用于处理大规模数据集。

以下是Hive中常用的一些函数:
聚合函数:
COUNT:计算行数或非NULL值的数量。

SUM:计算数值列的总和。

AVG:计算数值列的平均值。

MIN:找出数值列的最小值。

MAX:找出数值列的最大值。

字符串函数:
CONCAT:连接两个或多个字符串。

LENGTH:返回字符串的长度。

SUBSTR:截取字符串的子串。

TRIM:去除字符串首尾的空格。

LOWER/UPPER:将字符串转换为小写/大写。

时间日期函数:
YEAR/MONTH/DAY:提取日期字段中的年份/月份/日份。

HOUR/MINUTE/SECOND:提取时间字段中的小时/分钟/秒数。

TO_DATE:将字符串转换为日期格式。

条件函数:
IF/ELSE:根据条件返回不同的值。

CASE WHEN/THEN/ELSE/END:根据多个条件返回不同的值。

数学函数:
ABS:返回数值的绝对值。

ROUND:对数值进行四舍五入。

RAND:生成一个随机数。

EXP:返回指定数值的指数值。

LOG:计算数值的自然对数。

这只是Hive中一些常用的函数示例,实际上Hive提供了更多的函数用于处理数据。

你可以根据具体的需求在Hive官方文档中查找更多详细的函数说明和用法。

hive常用的的函数

hive常用的的函数

hive常用的的函数Hive提供了一种简单的SQL查询语言称为HiveQL,它允许数据工程师、数据分析师和应用程序开发人员查询和管理大规模数据。

以下是Hive中常用的一些函数:1. 字符串函数:`length(string)`: 返回字符串的长度。

`concat(string1, string2, ...)`: 连接两个或多个字符串。

`substr(string, start, length)`: 返回字符串的子串。

`trim(string)`: 去除字符串两端的空格。

`ltrim(string)`: 去除字符串左端的空格。

`rtrim(string)`: 去除字符串右端的空格。

2. 数值函数:`abs(bigint)`: 返回整数的绝对值。

`ceil(double)`: 返回大于或等于给定数字的最小整数。

`floor(double)`: 返回小于或等于给定数字的最大整数。

`round(double, ndigits)`: 返回四舍五入的值,其中ndigits是精度。

`mod(int, int)`: 返回第一个参数除以第二个参数的余数。

3. 日期函数:`current_date()`: 返回当前日期。

`from_unixtime(unix_timestamp[, format])`: 将UNIX时间戳转换为指定格式的日期时间。

`unix_timestamp()`: 将当前日期和时间转换为UNIX时间戳(以秒为单位)。

`date_format(date, format)` or `date_format(timestamp, format)`: 将日期/时间值格式化为指定的字符串格式。

4. 聚合函数:`count(), count(column)`: 计算行数或非NULL值的数量。

`sum(column)`: 计算列的总和。

`avg(column)`: 计算列的平均值。

`min(column)`: 返回列中的最小值。

hive 常用的函数

hive 常用的函数

Apache Hive 是一个基于Hadoop 的数据仓库工具,它提供了类似SQL 的查询语言HiveQL 来处理大规模的数据集。

以下是一些Hive 中常用的函数类别及示例:1. 数学与舍入函数•ABS(x): 返回x 的绝对值。

•FLOOR(x): 对浮点数x 进行向下取整。

•CEIL(x): 对浮点数x 进行向上取整。

•ROUND(x[, d]): 对数字x 进行四舍五入,d(可选)表示要保留的小数位数。

2. 字符串函数•LENGTH(str): 返回字符串str 的长度。

•LOWER(str)或lcase(str): 将字符串转换为小写。

•UPPER(str)或ucase(str): 将字符串转换为大写。

•CONCAT(string1, string2,...): 连接多个字符串。

•TRIM([BOTH|LEADING|TRAILING] 'chars' FROM str): 删除字符串两侧或指定一侧的字符。

3. 日期和时间函数•FROM_UNIXTIME(epoch, format): 将Unix 时间戳转换为日期格式。

•UNIX_TIMESTAMP(): 获取当前Unix 时间戳。

•DATE_FORMAT(date_expression, format_string): 格式化日期表达式。

•YEAR(date), MONTH(date), DAY(date): 提取日期中的年、月、日部分。

4. 聚合函数•COUNT(*): 统计行数。

•SUM(column): 计算某一列的总和。

•AVG(column): 计算平均值。

•MAX(column): 找出一列的最大值。

•MIN(column): 找出一列的最小值。

•GROUP_CONCAT(column): 合并一组值为单个字符串(在某些版本的Hive 中可用)。

5. 集合函数•COLLECT_SET(column): 返回一组唯一的值组成的集合,无序且会去除重复值。

hive函数大全

hive函数大全

hive函数大全1.内置运算符1.1关系运算符运算符类型说明A =B 原始类型如果A与B相等,返回TRUE,否则返回FALSEA ==B 无失败,因为无效的语法。

SQL使用”=”,不使用”==”。

A <>B 原始类型如果A不等于B返回TRUE,否则返回FALSE。

如果A或B值为”NULL”,结果返回”NULL”。

A <B 原始类型如果A小于B返回TRUE,否则返回FALSE。

如果A或B值为”NULL”,结果返回”NULL”。

A <=B 原始类型如果A小于等于B返回TRUE,否则返回FALSE。

如果A或B值为”NULL”,结果返回”NULL”。

A >B 原始类型如果A大于B返回TRUE,否则返回FALSE。

如果A或B值为”NULL”,结果返回”NULL”。

A >=B 原始类型如果A大于等于B返回TRUE,否则返回FALSE。

如果A或B值为”NULL”,结果返回”NULL”。

A IS NULL 所有类型如果A值为”NULL”,返回TRUE,否则返回FALSEA IS NOT NULL 所有类型如果A值不为”NULL”,返回TRUE,否则返回FALSEA LIKEB 字符串如果A或B值为”NULL”,结果返回”NULL”。

字符串A与B通过sql 进行匹配,如果相符返回TRUE,不符返回FALSE。

B字符串中的”_”代表任一字符,”%”则代表多个任意字符。

例如:(…foobar‟ like …foo‟)返回FALSE,(…foobar‟ like …foo_ _ _‟或者…foobar‟ like …foo%‟)则返回TUREA RLIKEB 字符串如果A或B值为”NULL”,结果返回”NULL”。

字符串A与B通过java 进行匹配,如果相符返回TRUE,不符返回FALSE。

例如:(…foobar‟rlike …foo‟)返回FALSE,(‟foobar‟rlike …^f.*r$‟)返回TRUE。

hive常用的的函数 -回复

hive常用的的函数 -回复

hive常用的的函数-回复Hive是一个构建在Hadoop之上的数据仓库工具,它提供了类似于SQL 的查询语言来操作存储在分布式存储中的大规模数据。

Hive最大的优势之一是其拥有丰富的内置函数,它们可以用于数据转换、聚合、过滤等各种操作。

本文将逐步解释Hive中常用的函数并提供示例,帮助读者更好地理解和应用这些函数。

一、转换函数(Transformation Functions)1. 小写函数(LOWER)将字符串转换为小写形式。

示例:SELECT LOWER('Hello World');结果:hello world2. 大写函数(UPPER)将字符串转换为大写形式。

示例:SELECT UPPER('Hello World');结果:HELLO WORLD3. 子字符串函数(SUBSTRING)获取指定字符串的一个子字符串。

示例:SELECT SUBSTRING('Hello World', 1, 5);结果:Hello4. 替换函数(REPLACE)在字符串中替换指定内容。

示例:SELECT REPLACE('Hello World', 'World', 'Hive');结果:Hello Hive5. 连接函数(CONCAT)连接两个或多个字符串。

示例:SELECT CONCAT('Hello', ' ', 'World');结果:Hello World二、数学函数(Mathematical Functions)1. 绝对值函数(ABS)返回给定数字的绝对值。

示例:SELECT ABS(-5);结果:52. 向上取整函数(CEIL)返回不小于给定数字的最小整数。

示例:SELECT CEIL(3.14159);结果:43. 向下取整函数(FLOOR)返回不大于给定数字的最大整数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录一、关系运算: (4)1. 等值比较: = (4)2. 不等值比较: <> (4)3. 小于比较: < (4)4. 小于等于比较: <= (4)5. 大于比较: > (5)6. 大于等于比较: >= (5)7. 空值判断: IS NULL (5)8. 非空判断: IS NOT NULL (6)9. LIKE比较: LIKE (6)10. JAVA的LIKE操作: RLIKE (6)11. REGEXP操作: REGEXP (7)二、数学运算: (7)1. 加法操作: + (7)2. 减法操作: - (7)3. 乘法操作: * (8)4. 除法操作: / (8)5. 取余操作: % (8)6. 位与操作: & (9)7. 位或操作: | (9)8. 位异或操作: ^ (9)9.位取反操作: ~ (10)三、逻辑运算: (10)1. 逻辑与操作: AND (10)2. 逻辑或操作: OR (10)3. 逻辑非操作: NOT (10)四、数值计算 (11)1. 取整函数: round (11)2. 指定精度取整函数: round (11)3. 向下取整函数: floor (11)4. 向上取整函数: ceil (12)5. 向上取整函数: ceiling (12)6. 取随机数函数: rand (12)7. 自然指数函数: exp (13)8. 以10为底对数函数: log10 (13)9. 以2为底对数函数: log2 (13)10. 对数函数: log (13)11. 幂运算函数: pow (14)12. 幂运算函数: power (14)13. 开平方函数: sqrt (14)14. 二进制函数: bin (14)15. 十六进制函数: hex (15)16. 反转十六进制函数: unhex (15)17. 进制转换函数: conv (15)18. 绝对值函数: abs (16)19. 正取余函数: pmod (16)20. 正弦函数: sin (16)21. 反正弦函数: asin (16)22. 余弦函数: cos (17)23. 反余弦函数: acos (17)24. positive函数: positive (17)25. negative函数: negative (17)五、日期函数 (18)1. UNIX时间戳转日期函数: from_unixtime (18)2. 获取当前UNIX时间戳函数: unix_timestamp (18)3. 日期转UNIX时间戳函数: unix_timestamp (18)4. 指定格式日期转UNIX时间戳函数: unix_timestamp (18)5. 日期时间转日期函数: to_date (19)6. 日期转年函数: year (19)7. 日期转月函数: month (19)8. 日期转天函数: day (19)9. 日期转小时函数: hour (20)10. 日期转分钟函数: minute (20)11. 日期转秒函数: second (20)12. 日期转周函数: weekofyear (20)13. 日期比较函数: datediff (21)14. 日期增加函数: date_add (21)15. 日期减少函数: date_sub (21)六、条件函数 (21)1. If函数: if (21)2. 非空查找函数: COALESCE (22)3. 条件判断函数:CASE (22)4. 条件判断函数:CASE (22)七、字符串函数 (23)1. 字符串长度函数:length (23)2. 字符串反转函数:reverse (23)3. 字符串连接函数:concat (23)4. 带分隔符字符串连接函数:concat_ws (23)5. 字符串截取函数:substr,substring (24)6. 字符串截取函数:substr,substring (24)7. 字符串转大写函数:upper,ucase (24)8. 字符串转小写函数:lower,lcase (25)9. 去空格函数:trim (25)10. 左边去空格函数:ltrim (25)11. 右边去空格函数:rtrim (25)12. 正则表达式替换函数:regexp_replace (26)13. 正则表达式解析函数:regexp_extract (26)14. URL解析函数:parse_url (26)15. json解析函数:get_json_object (27)16. 空格字符串函数:space (27)17. 重复字符串函数:repeat (27)18. 首字符ascii函数:ascii (28)19. 左补足函数:lpad (28)20. 右补足函数:rpad (28)21. 分割字符串函数: split (28)22. 集合查找函数: find_in_set (29)八、集合统计函数 (29)1. 个数统计函数: count (29)2. 总和统计函数: sum (29)3. 平均值统计函数: avg (30)4. 最小值统计函数: min (30)5. 最大值统计函数: max (30)6. 非空集合总体变量函数: var_pop (30)7. 非空集合样本变量函数: var_samp (31)8. 总体标准偏离函数: stddev_pop (31)9. 样本标准偏离函数: stddev_samp (31)10.中位数函数: percentile (31)11. 中位数函数: percentile (31)12. 近似中位数函数: percentile_approx (32)13. 近似中位数函数: percentile_approx (32)14. 直方图: histogram_numeric (32)九、复合类型构建操作 (32)1. Map类型构建: map (32)2. Struct类型构建: struct (33)3. array类型构建: array (33)十、复杂类型访问操作 (33)1. array类型访问: A[n] (33)2. map类型访问: M[key] (34)3. struct类型访问: S.x (34)十一、复杂类型长度统计函数 (34)1. Map类型长度函数: size(Map<K.V>) (34)2. array类型长度函数: size(Array<T>) (34)3. 类型转换函数 (35)一、关系运算:1. 等值比较: =语法:A=B操作类型:所有基本类型描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1=1;12. 不等值比较: <>语法: A <> B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B不相等,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1 <> 2;13. 小于比较: <语法: A < B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于表达式B,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1 < 2;14. 小于等于比较: <=语法: A <= B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于或者等于表达式B,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1 <= 1;15. 大于比较: >语法: A > B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于表达式B,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 2 > 1;16. 大于等于比较: >=语法: A >= B操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于或者等于表达式B,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where 1 >= 1;1注意:String的比较要注意(常用的时间比较可以先to_date之后再比较)hive> select * from lxw_dual;OK2011111209 00:00:00 2011111209hive> select a,b,a<b,a>b,a=b from lxw_dual;2011111209 00:00:00 2011111209 false true false7. 空值判断: IS NULL语法: A IS NULL操作类型: 所有类型描述: 如果表达式A的值为NULL,则为TRUE;否则为FALSE举例:hive> select 1 from lxw_dual where null is null;18. 非空判断: IS NOT NULL语法: A IS NOT NULL操作类型: 所有类型描述: 如果表达式A的值为NULL,则为FALSE;否则为TRUE举例:hive> select 1 from lxw_dual where 1 is not null;19. LIKE比较: LIKE语法: A LIKE B操作类型: strings描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。

B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。

举例:hive> select 1 from lxw_dual where 'football' like 'foot%';1hive> select 1 from lxw_dual where 'football' like 'foot____';1注意:否定比较时候用NOT A LIKE Bhive> select 1 from lxw_dual where NOT 'football' like 'fff%';110. JAVA的LIKE操作: RLIKE语法: A RLIKE B操作类型: strings描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合JAVA正则表达式B的正则语法,则为TRUE;否则为FALSE。

相关文档
最新文档