HiveQL 函数
在Hive中提供了各种内置函数,用于执行数学和聚合类型的操作。在这里,我们将对下表的记录执行此类函数。
Hive中的函数示例
通过以下步骤创建一个表并将数据加载到其中:-
- 选择我们想要创建表的数据库。
hive> use hql;
- 使用以下命令创建一个Hive表:-
hive> create table employee_data (Id int, Name string , Salary float)
row format delimited
fields terminated by ',' ;
- 现在,将数据加载到表中。
hive> load data local inpath '/home/codegyani/hive/emp_details' into table employee_data;
- 让我们通过以下命令获取加载的数据:-
hive> select * from employee_data;
Hive中的数学函数
在Hive中常用的数学函数有:-
返回类型 | 函数 | 描述 |
---|---|---|
BIGINT | round(num) | 返回DOUBLE num的四舍五入的BIGINT值。 |
BIGINT | floor(num) | 返回不大于num的最大BIGINT。 |
BIGINT | ceil(num), ceiling(DOUBLE num) | 返回不小于num的最小BIGINT。 |
DOUBLE | exp(num) | 返回num的指数。 |
DOUBLE | ln(num) | 返回num的自然对数。 |
DOUBLE | log10(num) | 返回num的以10为底的对数。 |
DOUBLE | sqrt(num) | 返回num的平方根。 |
DOUBLE | abs(num) | 返回num的绝对值。 |
DOUBLE | sin(d) | 返回num的正弦值(以弧度为单位)。 |
DOUBLE | asin(d) | 返回num的反正弦值(以弧度为单位)。 |
DOUBLE | cos(d) | 返回num的余弦值(以弧度为单位)。 |
DOUBLE | acos(d) | 返回num的反余弦值(以弧度为单位)。 |
DOUBLE | tan(d) | 返回num的正切值(以弧度为单位)。 |
DOUBLE | atan(d) | 返回num的反正切值(以弧度为单位)。 |
数学函数在Hive中的示例
- 让我们看一个示例,获取每个员工薪水的平方根。
hive> select Id, Name, sqrt(Salary) from employee_data ;
Hive 中的聚合函数
在 Hive 中,聚合函数返回计算多行后的单个值。让我们看一些常用的聚合函数:-
返回类型 | 操作符 | 描述 |
---|---|---|
BIGINT | count(*) | 它返回文件中存在的行数。 |
DOUBLE | sum(col) | 它返回值的总和。 |
DOUBLE | sum(DISTINCT col) | 它返回不重复值的总和。 |
DOUBLE | avg(col) | 它返回值的平均值。 |
DOUBLE | avg(DISTINCT col) | 它返回不重复值的平均值。 |
DOUBLE | min(col) | 它比较值并从中返回最小值。 |
DOUBLE | max(col) | 它比较值并从中返回最大值。 |
Hive中聚合函数的示例
- 让我们看一个获取员工最高工资的示例。
hive> select max(Salary) from employee_data;
- 让我们看一个示例,获取员工的最低工资。
hive> select min(Salary) from employee_data;
在Hive中的其他内置函数
以下是Hive中一些常用的其他内置函数:-
返回类型 | 运算符 | 描述 |
---|---|---|
INT | length(str) | 返回字符串的长度。 |
STRING | reverse(str) | 返回字符串的反向顺序。 |
STRING | concat(str1, str2, …) | 返回两个或多个字符串的连接。 |
STRING | substr(str, start_index) | 基于提供的起始索引,返回字符串的子字符串。 |
STRING | substr(str, int start, int length) | 基于提供的起始索引和长度,返回字符串的子字符串。 |
STRING | upper(str) | 返回大写字符串。 |
STRING | lower(str) | 返回小写字符串。 |
STRING | trim(str) | 去除字符串两端的空格后返回。 |
STRING | ltrim(str) | 去除字符串左侧的空格后返回。 |
TRING | rtrim(str) | 去除字符串右侧的空格后返回。 |
Hive中其他内置函数的示例
- 让我们看一个示例,获取每个员工的姓名并转换为大写。
select Id, upper(Name) from employee_data;
- 让我们看一个示例,获取每个员工的姓名的小写形式。
select Id, lower(Name) from employee_data;