Hive - 内置运算符 Hive - 分区 Hive - 内置函数 本章介绍Hive的内置运算符。Hive中有四种类型的操作符: 关系运算符 算术运算符 逻辑运算符 复杂算子 关系运算符 这些运算符用于比较两个操作数。下表介绍了Hive中可用的关系运算符: 操作者 操作数 描述 A = B 所有原始类型 如果表达式A等同于表达式B,则返回FALSE。 A!= B 所有原始类型 如果表达式A与表达式B不等价,则返回FALSE。 A 所有原始类型 如果表达式A小于表达式B,则返回TRUE,否则返回FALSE。 A <= B 所有原始类型 如果表达式A小于或等于表达式B,则返回TRUE否则返回FALSE。 A> B 所有原始类型 如果表达式A大于表达式B,则返回TRUE,否则返回FALSE。 A> = B 所有原始类型 如果表达式A大于或等于表达式B,则返回TRUE,否则返回FALSE。 一个IS NULL 所有类型 如果表达式A的计算结果为NULL,则返回FALSE。 一个不是NULL 所有类型 如果表达式A的计算结果为NULL,则为FALSE否则为TRUE。 A喜欢B 字符串 如果字符串模式A与B匹配,则返回FALSE。 RLIKE B 字符串 如果A或B为NULL,则为NULL;如果A的任何子字符串与Java正则表达式B匹配,则为TRUE,否则为FALSE。 REGEXP B 字符串 和RLIKE一样。 例 让我们假设 雇员 表由名称为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中可用的算术运算符: 运算符 操作数 描述 A + B 所有数字类型 给出添加A和B的结果。 A - B 所有数字类型 给出从A中减去B的结果。 A * B 所有数字类型 给出A和B相乘的结果。 A / B 所有数字类型 给出从A中除B的结果。 A%B 所有数字类型 给出由A除B产生的提醒。 A&B 所有数字类型 给出A和B的按位AND的结果。 A | B 所有数字类型 给出A和B的按位OR的结果。 A ^ B 所有数字类型 给出A和B的按位XOR的结果。 〜A 所有数字类型 给出A的按位NOT的结果。 例 以下查询添加了两个数字,20和30。 hive> SELECT 20+30 ADD FROM temp; 成功执行查询后,您将看到以下响应: +--------+ | ADD | +--------+ | 50 | +--------+ 逻辑运算符 操作符是逻辑表达式。他们都返回TRUE或FALSE。 操作符 操作数 描述 A AND B 布尔 如果A和B都为TRUE,则为TRUE,否则为FALSE。 A && B 布尔 与A和B.相同 A OR B 布尔 如果A或B或两者都为TRUE,则为TRUE,否则为FALSE。 A || B 布尔 与A或B相同 NOT A 布尔 如果A为FALSE,则为TRUE,否则为FALSE。 !A 布尔 与NOT A相同 例 以下查询用于检索部门为TP且薪酬大于40000卢比的员工详细信息。 hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP; 成功执行查询后,您将看到以下响应: +------+--------------+-------------+-------------------+--------+ | ID | Name | Salary | Designation | Dept | +------+--------------+-------------+-------------------+--------+ |1201 | Gopal | 45000 | Technical manager | TP | +------+--------------+-------------+-------------------+--------+ 复杂运算 这些运算符提供了一个表达式来访问复杂类型的元素。 操作者 操作数 描述 A[n] A是一个数组,n是一个int 它返回数组A中的第n个元素。第一个元素的索引为0。 M[key] M是Map ,键有K型 它返回地图中对应于键的值。 S.x S是一个结构 它返回S的x字段 Hive - 分区 Hive - 内置函数