《hive函数大全》由会员分享,可在线阅读,更多相关《hive函数大全(35页珍藏版)》请在金锄头文库上搜索。
1、目录目录一、关系运算: .4 1. 等值比较: = .4 2. 不等值比较: = .5 7. 空值判断: IS NULL.5 8. 非空判断: IS NOT NULL.6 9. LIKE 比较: LIKE.6 10. JAVA 的 LIKE 操作: RLIKE.6 11. REGEXP 操作: REGEXP.7 二、数学运算: .7 1. 加法操作: + .7 2. 减法操作: -.7 3. 乘法操作: * .8 4. 除法操作: /.8 5. 取余操作: %.8 6. 位与操作: 12. 不等值比较不等值比较: B 操作类型: 所有基本类型 描述: 如果表达式 A 为 NULL,或者表达式
2、B 为 NULL,返回 NULL;如果表达式 A 与表 达式 B 不相等,则为 TRUE;否则为 FALSE 举例: hive select 1 from lxw_dual where 1 B 操作类型: 所有基本类型 描述: 如果表达式 A 为 NULL,或者表达式 B 为 NULL,返回 NULL;如果表达式 A 大于 表达式 B,则为 TRUE;否则为 FALSE 举例: hive select 1 from lxw_dual where 2 1; 16. 大于等于比较大于等于比较: =语法: A = B 操作类型: 所有基本类型 描述: 如果表达式 A 为 NULL,或者表达式 B 为
3、 NULL,返回 NULL;如果表达式 A 大于 或者等于表达式 B,则为 TRUE;否则为 FALSE 举例: hive select 1 from lxw_dual where 1 = 1; 1注意:注意:String 的比较要注意的比较要注意(常用的时间比较可以先常用的时间比较可以先 to_date 之后再比较之后再比较) hive select * from lxw_dual; OK 2011111209 00:00:00 2011111209hive select a,b,ab,a=b from lxw_dual; 2011111209 00:00:00 2011111209 fal
4、se true false7. 空值判断空值判断: IS NULL语法: A IS NULL 操作类型: 所有类型 描述: 如果表达式 A 的值为 NULL,则为 TRUE;否则为 FALSE 举例: hive select 1 from lxw_dual where null is null; 18. 非空判断非空判断: IS NOT NULL语法: A IS NOT NULL 操作类型: 所有类型 描述: 如果表达式 A 的值为 NULL,则为 FALSE;否则为 TRUE 举例: hive select 1 from lxw_dual where 1 is not null; 19. L
5、IKE 比较比较: LIKE语法: A LIKE B 操作类型: strings 描述: 如果字符串 A 或者字符串 B 为 NULL,则返回 NULL;如果字符串 A 符合表达式 B 的正则语法,则为 TRUE;否则为 FALSE。B 中字符”_”表示任意单个字符,而 字符”%”表示任意数量的字符。 举例: hive select 1 from lxw_dual where football like foot%; 1 hive select 1 from lxw_dual where football like foot_; 1注意:否定比较时候用注意:否定比较时候用 NOT A LIKE
6、 B hive select 1 from lxw_dual where NOT football like fff%; 110. JAVA 的的 LIKE 操作操作: RLIKE语法: A RLIKE B 操作类型: strings 描述: 如果字符串 A 或者字符串 B 为 NULL,则返回 NULL;如果字符串 A 符合 JAVA 正 则表达式 B 的正则语法,则为 TRUE;否则为 FALSE。 举例: hive select 1 from lxw_dual where footbar rlike f.*r$; 1注意:判断一个字符串是否全为数字:注意:判断一个字符串是否全为数字: h
7、iveselect 1 from lxw_dual where 123456 rlike d+$; 1 hive select 1 from lxw_dual where 123456aa rlike d+$;11. REGEXP 操作操作: REGEXP语法: A REGEXP B 操作类型: strings 描述: 功能与 RLIKE 相同 举例: hive select 1 from lxw_dual where footbar REGEXP f.*r$; 1二、数学运算:二、数学运算:1. 加法操作加法操作: +语法: A + B 操作类型:所有数值类型 说明:返回 A 与 B 相加的
8、结果。结果的数值类型等于 A 的类型和 B 的类型的最小父类 型(详见数据类型的继承关系) 。比如,int + int 一般结果为 int 类型,而 int + double 一般 结果为 double 类型 举例: hive select 1 + 9 from lxw_dual; 10 hive create table lxw_dual as select 1 + 1.2 from lxw_dual; hive describe lxw_dual; _c0 double2. 减法操作减法操作: -语法: A B 操作类型:所有数值类型 说明:返回 A 与 B 相减的结果。结果的数值类型等于
9、 A 的类型和 B 的类型的最小父类 型(详见数据类型的继承关系) 。比如,int int 一般结果为 int 类型,而 int double 一 般结果为 double 类型 举例: hive select 10 5 from lxw_dual; 5 hive create table lxw_dual as select 5.6 4 from lxw_dual; hive describe lxw_dual; _c0 double3. 乘法操作乘法操作: *语法: A * B 操作类型:所有数值类型 说明:返回 A 与 B 相乘的结果。结果的数值类型等于 A 的类型和 B 的类型的最小父类
10、 型(详见数据类型的继承关系) 。注意,如果 A 乘以 B 的结果超过默认结果类型的数值范 围,则需要通过 cast 将结果转换成范围更大的数值类型 举例: hive select 40 * 5 from lxw_dual; 2004. 除法操作除法操作: /语法: A / B 操作类型:所有数值类型 说明:返回 A 除以 B 的结果。结果的数值类型为 double 举例: hive select 40 / 5 from lxw_dual; 8.0注意:注意:hive 中最高精度的数据类型是中最高精度的数据类型是 double,只精确到小数点后只精确到小数点后 16 位,在做除法运算位,在做除
11、法运算 的时候要特别注意的时候要特别注意 hiveselect ceil(28.0/6.999999999999999999999) from lxw_dual limit 1; 结果为 4 hiveselect ceil(28.0/6.99999999999999) from lxw_dual limit 1; 结果为 55. 取余操作取余操作: %语法: A % B 操作类型:所有数值类型 说明:返回 A 除以 B 的余数。结果的数值类型等于 A 的类型和 B 的类型的最小父类型 (详见数据类型的继承关系) 。 举例: hive select 41 % 5 from lxw_dual; 1 hive select 8.4 % 4 from lxw_dual; 0.40000000000000036注意:精度在注意:精度在 hive 中