Hive Built-in Operators
Relational Operators
Operator | Operand | Description |
---|---|---|
A = B | all primitive types | TRUE if expression A is equivalent to expression B otherwise FALSE. |
A != B | all primitive types | TRUE if expression A is not equivalent to expression B otherwise FALSE. |
A < B | all primitive types | TRUE if expression A is less than expression B otherwise FALSE. |
A <= B | all primitive types | TRUE if expression A is less than or equal to expression B otherwise FALSE. |
A > B | all primitive types | TRUE if expression A is greater than expression B otherwise FALSE. |
A >= B | all primitive types | TRUE if expression A is greater than or equal to expression B otherwise FALSE. |
A IS NULL | all types | TRUE if expression A evaluates to NULL otherwise FALSE. |
A IS NOT NULL | all types | FALSE if expression A evaluates to NULL otherwise TRUE. |
A LIKE B | Strings | TRUE if string pattern A matches to B otherwise FALSE. |
A RLIKE B | Strings | NULL if A or B is NULL, TRUE if any substring of A matches the Java regular expression B , otherwise FALSE. |
A REGEXP B | Strings | Same as RLIKE. |
Tips
hive> CREATE TABLE IF NOT EXISTS employee ( id int, name String,
salary Double, destination String, dept String)
COMMENT 'Employee details'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
vi ~/hive/employee.txt
1201 Gopal 45000 Technical manager TP
1202 Manisha 45000 Proof reader PR
1203 Masthanvali 40000 Technical writer TP
1204 Kiran 40000 Hr Admin HR
1205 Kranthi 30000 Op Admin Admin
hive> LOAD DATA LOCAL INPATH '/home/hadoop/hive/employee.txt'
OVERWRITE INTO TABLE employee;
Example
hive> SELECT * FROM employee WHERE Id=1205;
hive> SELECT * FROM employee WHERE Salary>=40000;
Arithmetic Operators
Operators | Operand | Description |
---|---|---|
A + B | all number types | Gives the result of adding A and B. |
A - B | all number types | Gives the result of subtracting B from A. |
A * B | all number types | Gives the result of multiplying A and B. |
A / B | all number types | Gives the result of dividing B from A. |
A % B | all number types | Gives the reminder resulting from dividing A by B. |
A & B | all number types | Gives the result of bitwise AND of A and B. |
A | B | all number types |
A ^ B | all number types | Gives the result of bitwise XOR of A and B. |
~A | all number types | Gives the result of bitwise NOT of A. |
Example
hive> SELECT 20+30 ADD FROM employee;
Logical Operators
Operators | Operands | Description |
---|---|---|
A AND B | boolean | TRUE if both A and B are TRUE, otherwise FALSE. |
A && B | boolean | Same as A AND B. |
A OR B | boolean | TRUE if either A or B or both are TRUE, otherwise FALSE. |
A | B | |
NOT A | boolean | TRUE if A is FALSE, otherwise FALSE. |
!A | boolean | Same as NOT A. |
Example
hive> SELECT * FROM employee WHERE Salary>40000 AND Dept='TP';
Complex Operators
Operator | Operand | Description |
---|---|---|
A[n] | A is an Array and n is an int | It returns the nth element in the array A. The first element has index 0. |
M[key] | M is a Map |
It returns the value corresponding to the key in the map. |
S.x | S is a struct | It returns the x field of S. |