本章介绍Hive的内置运算符。在Hive有四种类型的运算符:
关系运算符
算术运算符
逻辑运算符
复杂运算符
关系运算符
这些操作符被用来比较两个操作数。下表描述了在Hive中可用的关系运算符:
示例
让我们假设employee表由字段:Id, Name, Salary, Designation, 和Dept组成,如下图所示。生成一个查询检索员工详细信息 - ID为1205。
+-----+--------------+--------+---------------------------+------+
| Id | Name | Salary | Designation | Dept |
+-----+--------------+------------------------------------+------+
|1201 | Gopal | 45000 | Technical manager | TP |
|1202 | Manisha | 45000 | Proofreader | PR |
|1203 | Masthanvali | 40000 | Technical writer | TP |
|1204 | Krian | 40000 | Hr Admin | HR |
|1205 | Kranthi | 30000 | Op Admin | Admin|
+-----+--------------+--------+---------------------------+------+ |
以下查询执行检索使用上述表中的雇员的详细信息:
hive> SELECT * FROM employee WHERE Id=1205; |
成功执行的查询,能看到以下回应:
+-----+-----------+-----------+----------------------------------+
| ID | Name | Salary | Designation | Dept
|+-----+---------------+-------+----------------------------------+
|1205 | Kranthi | 30000 | Op Admin | Admin |
+-----+-----------+-----------+----------------------------------+ |
下面的查询执行以检索薪水大于或等于40000卢比的雇员的详细信息。
hive> SELECT * FROM employee WHERE Salary>=40000; |
成功执行的查询,能看到以下回应:
+-----+------------+--------+----------------------------+------+
| ID | Name | Salary | Designation | Dept |
+-----+------------+--------+----------------------------+------+
|1201 | Gopal | 45000 | Technical manager
| TP | |1202 | Manisha | 45000 | Proofreader
| PR | |1203 | Masthanvali| 40000 | Technical writer
| TP | |1204 | Krian | 40000 | Hr Admin | HR |
+-----+------------+--------+----------------------------+------+ |
算术运算符
这些运算符支持的操作数各种常见的算术运算。所有这些返回数字类型。下表描述了在Hive中可用的算术运算符:
示例
下面的查询相加两个数字,20和30。
hive> SELECT 20+30 ADD FROM temp; |
在成功执行查询后,能看到以下回应:
+--------+ | ADD | +--------+ | 50 | +--------+ |
逻辑运算符
运算符是逻辑表达式。所有这些返回TRUE或FALSE。
示例
下面的查询用于检索部门是TP并且工资超过40000卢比的员工详细信息。
hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP; |
成功执行查询后,能看到以下回应:
+------+--------------+-------------+-------------------+--------+
| ID | Name | Salary | Designation | Dept |
+------+--------------+-------------+-------------------+--------+
|1201 | Gopal | 45000 | Technical manager | TP |
+------+--------------+-------------+-------------------+--------+ |
复杂的运算符
这些运算符提供一个表达式来接入复杂类型的元素。
|