Hive函数详解与示例

需积分: 10 2 下载量 190 浏览量 更新于2024-07-25 收藏 196KB DOC 举报
"史上最全的Hive函数大全涵盖了关系运算、数学运算、逻辑运算、数值计算和日期函数等多个方面,提供了详细的使用说明和案例。" Hive是基于Hadoop的数据仓库工具,它允许用户使用SQL方言(HQL)进行数据分析。在Hive中,有丰富的内置函数用于数据处理和分析,以下是一些主要函数的详细说明: 1. **关系运算**: - **等值比较**: 使用`=`, 如 `column = value`,检查两个值是否相等。 - **不等值比较**: 使用`<>`, 如 `column <> value`,检查两个值是否不相等。 - **小于比较**: 使用`<`, 如 `column < value`,判断值是否小于指定值。 - **小于等于比较**: 使用`<=`, 如 `column <= value`,判断值是否小于或等于指定值。 - **大于比较**: 使用`>`, 如 `column > value`,判断值是否大于指定值。 - **大于等于比较**: 使用`>=`, 如 `column >= value`,判断值是否大于或等于指定值。 - **空值判断**: 使用`IS NULL`, 如 `column IS NULL`,检查值是否为NULL。 - **非空判断**: 使用`IS NOT NULL`, 如 `column IS NOT NULL`,检查值是否非空。 - **LIKE比较**: 使用`LIKE`, 如 `column LIKE pattern`,根据模式匹配字符串。 - **JAVA的LIKE操作**: 使用`RLIKE`, 类似于Java的正则表达式匹配。 - **REGEXP操作**: 使用`REGEXP`, 使用正则表达式进行匹配。 2. **数学运算**: - **加法操作**: 使用`+`, 如 `column + value`,执行数值加法。 - **减法操作**: 使用`-`, 如 `column - value`,执行数值减法。 - **乘法操作**: 使用`*`, 如 `column * value`,执行数值乘法。 - **除法操作**: 使用`/`, 如 `column / value`,执行数值除法。 - **取余操作**: 使用`%`, 如 `column % value`,计算数值的余数。 - **位与操作**: 使用`&`, 对数字进行按位与运算。 - **位或操作**: 使用`|`, 对数字进行按位或运算。 - **位异或操作**: 使用`^`, 对数字进行按位异或运算。 - **位取反操作**: 使用`~`, 取数字的二进制补码。 3. **逻辑运算**: - **逻辑与操作**: 使用`AND`, 如 `column AND value`,执行逻辑与。 - **逻辑或操作**: 使用`OR`, 如 `column OR value`,执行逻辑或。 - **逻辑非操作**: 使用`NOT`, 如 `NOT column`,执行逻辑非。 4. **数值计算**: - **取整函数**: 使用`round`, 如 `round(column)`,将浮点数四舍五入到最接近的整数。 - **指定精度取整函数**: `round(column, precision)`,四舍五入到指定小数位数。 - **向下取整函数**: 使用`floor`, 如 `floor(column)`,返回小于或等于给定数值的最大整数。 - **向上取整函数**: 使用`ceil`或`ceiling`, 如 `ceil(column)`或`ceiling(column)`,返回大于或等于给定数值的最小整数。 - **取随机数函数**: 使用`rand`, 如 `rand()`,生成0到1之间的随机浮点数。 - **自然指数函数**: 使用`exp`, 如 `exp(column)`,计算e的指数次方。 - **对数函数**: `log`, `log10`, `log2`分别计算以e、10、2为底的对数。 - **幂运算函数**: 使用`pow`或`power`, 如 `pow(column, exponent)`或`power(column, exponent)`,计算一个数的幂。 - **开平方函数**: 使用`sqrt`, 如 `sqrt(column)`,计算数的平方根。 - **二进制函数**: 使用`bin`, 如 `bin(column)`,将数字转换为二进制字符串。 - **十六进制函数**: 使用`hex`, 如 `hex(column)`,将数字转换为十六进制字符串。 - **反转十六进制函数**: 使用`unhex`, 如 `unhex(hex_string)`,将十六进制字符串转换回原始数字。 - **进制转换函数**: 使用`conv`, 如 `conv(number, from_base, to_base)`,在不同基数间转换数字。 - **绝对值函数**: 使用`abs`, 如 `abs(column)`,返回数值的绝对值。 - **正取余函数**: 使用`pmod`, 如 `pmod(dividend, divisor)`,返回正取余结果。 - **正弦函数**: 使用`sin`, 如 `sin(column)`,计算角度的正弦值。 - **反正弦函数**: 使用`asin`, 如 `asin(column)`,计算正弦值对应的角度。 - **余弦函数**: 使用`cos`, 如 `cos(column)`,计算角度的余弦值。 - **反余弦函数**: 使用`acos`, 如 `acos(column)`,计算余弦值对应的角度。 - **positive函数**: 使用`positive`, 如 `positive(column)`,保持正数不变,负数转为正数。 - **negative函数**: 使用`negative`, 如 `negative(column)`,保持负数不变,正数转为负数。 5. **日期函数**: - **UNIX时间戳转日期函数**: 使用`from_unixtime`, 如 `from_unixtime(timestamp)`,将UNIX时间戳转换为日期。 - **获取当前UNIX时间戳函数**: 使用`unix_timestamp`,返回当前时间的UNIX时间戳。 - **日期转UNIX时间戳函数**: 使用`unix_timestamp(date_string)`,将日期字符串转换为UNIX时间戳。 - **指定格式日期转UNIX时间戳函数**: `unix_timestamp(date_string, format)`, 将指定格式的日期字符串转换为UNIX时间戳。 - **日期时间转日期函数**: 使用`to_date`, 如 `to_date(datetime)`,从日期时间中提取日期部分。 - **日期转年函数**: 使用`year`, 如 `year(date)`,获取日期中的年份。 - **日期转月函数**: 使用`month`, 如 `month(date)`,获取日期中的月份。 - **日期转天函数**: 使用`day`, 如 `day(date)`,获取日期中的日。 - **日期转小时函数**: 使用`hour`, 如 `hour(datetime)`,获取日期时间中的小时。 - **日期转分钟函数**: 使用`minute`, 如 `minute(datetime)`,获取日期时间中的分钟。 这些函数为Hive用户提供了强大的数据处理能力,使得复杂的数据分析任务变得简单易行。在实际应用中,用户可以根据需求灵活运用这些函数,进行数据过滤、转换、聚合等多种操作。