Hive函数全解析:涵盖关系运算、数学逻辑到日期处理

5星 · 超过95%的资源 需积分: 10 17 下载量 96 浏览量 更新于2024-07-28 1 收藏 196KB DOC 举报
Hive函数大全是Hadoop生态系统中Hive语言的重要组成部分,它为数据处理提供了强大的功能。本文将详细介绍Hive中的各种核心函数,帮助用户快速理解和掌握在进行SQL查询时如何高效利用这些工具。 一、关系运算函数: 1. 等值比较 `=`: 用于检查两个值是否相等,是基础的比较操作。 2. 不等值比较 `<>` 或 `<>`: 检查两个值是否不相等。 3. 小于比较 `<`: 用于确定一个值是否小于另一个值。 4. 小于等于比较 `<=`: 用于判断一个值是否小于或等于另一个值。 5. 大于比较 `>`: 检查一个值是否大于另一个值。 6. 大于等于比较 `>=`: 与`>`相反,用于判断一个值是否大于或等于另一个值。 7. 空值判断 `IS NULL`: 检查一个值是否为空,适用于处理NULL值。 8. 非空判断 `IS NOT NULL`: 反向检查一个值是否不为空。 9. LIKE比较: 匹配模式,适用于字符串匹配,如查找包含特定字符的字段。 10. Java-like操作 `RLIKE` 和 `REGEXP`: 更复杂的正则表达式匹配,用于更精确的模式查找。 11. 正则表达式操作 `REGEXP`: 类似于RLIKE,但可能支持更多正则表达式语法。 二、数学运算函数: 1. 加法操作 `+`: 对数值进行相加。 2. 减法操作 `-`: 从一个数中减去另一个数。 3. 乘法操作 `*`: 两个数的乘积。 4. 除法操作 `/`: 两个数的商。 5. 取余操作 `%`: 返回除法的余数。 6. 位与操作 `&`: 对二进制数进行按位与运算。 7. 位或操作 `|`: 按位或运算,组合两个数的二进制表示。 8. 位异或操作 `^`: 按位异或运算,交换二进制位的值。 9. 位取反操作 `~`: 对一个二进制数进行按位取反。 10. 数学运算涵盖了基本算术到更高级的位操作,对于处理数值数据非常实用。 三、逻辑运算函数: 1. 逻辑与操作 `AND`: 两个条件同时为真时返回真。 2. 逻辑或操作 `OR`: 至少有一个条件为真时返回真。 3. 逻辑非操作 `NOT`: 对一个布尔值取反。 这些函数用于构建复杂的条件语句,实现更灵活的数据筛选和分析。 四、数值计算函数: 这部分包括各种数值处理函数,如: 1. 取整函数 `round` 和 `round` (指定精度):对数字进行四舍五入。 2. 向下取整函数 `floor` 和 `ceiling` 或 `ceil`:分别返回不大于和不小于的最小整数。 3. 随机数函数 `rand`:生成指定范围内的随机数。 4. 特殊数学函数,如自然指数函数 `exp`、对数函数 (`log10`、`log2`、`log`),以及幂运算 `pow` 或 `power`。 5. 开平方函数 `sqrt`:求平方根。 6. 转换函数,如 `bin`(二进制)、`hex`(十六进制)和 `unhex`(还原十六进制)、`conv`(转换进制)。 7. 绝对值函数 `abs` 和正取余函数 `pmod`。 8. 三角函数,如 `sin`、`asin`、`cos`、`acos`。 9. 正负数函数 `positive` 和 `negative`:用于处理数值的符号。 五、日期和时间函数: 这部分针对时间序列数据提供了丰富的处理方法: 1. 时间戳转换函数 `from_unixtime`:将UNIX时间戳转换为日期时间格式。 2. 获取和转换时间戳函数,如 `unix_timestamp`:用于获取当前时间戳或转换日期为时间戳。 3. 日期时间转换函数 `to_date`:提取日期部分。 4. 日期元素提取函数,如 `year`、`month`、`day`、`hour`、`min` 等,用于获取日期或时间的各个部分。 5. 专门针对日期的函数,如 `year`、`month` 等,用于单独处理各元素。 Hive函数大全是Hive编程中的重要基石,熟练掌握这些函数能极大地提高数据分析和查询效率。通过理解并运用这些函数,用户能够有效地执行复杂的数据操作,满足不同业务场景的需求。
2012-05-02 上传
一、关系运算: 4 1. 等值比较: = 4 2. 不等值比较: 4 3. 小于比较: < 4 4. 小于等于比较: 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) 34 2. array类型长度函数: size(Array) 34 3. 类型转换函数 35