标签:
1.hive常用的数据类型包括:
tinyInt(byte),smallint(short),int,bigint(long),float,double,boolean,string类型。【括号中对应java类型】
补充:对于mysql中的varchar和char类型:若字符串长度小于10建议用char,大于10使用varchar。这是因为对于varchar类型,必须占有一到两个字节来说明它的字符长度。(char寻址快)
2.类型转换
隐式转换规则:任何整数类型都可以隐式转换为一个范围更广的类型。
所有整数类型 + float + string都可以转换为double类型。
可以使用cast操作进行数据类型显示转换。
例如cast(‘1‘ as int)把字符串‘1‘转换成整数值1,转换失败则表达式返回控制NULL。
3.复杂类型
Create tablecomplex (
Col1 array,
Col2 map,
Col3 struct);
将内容为:array (1,2) map(‘a‘,1,‘b‘,2) struct(‘a‘,1,1.0) 的数据文件load到上面的表中。
执行hive语句:Select Col1[0], Col2[‘b‘],Col3.c from complex;
返回:1 2 1.0
Array类型是通过下标来取值,字段的类型必须相同
Map类型是通过key来取值,
Struct类型是通过定义时的名称来取值,字段类型可以不同
4.内置函数
与SQL相同的:等值判断 x=‘a‘,空值判断 x is NULL,模式匹配 x like ‘A%‘,算术操作 x+1,逻辑操作 x or y。
其中和SQL-92有点区别的是:||是逻辑或(OR),而不是字符串"连接"。在mysql和hive中字符串连接是concat()函数。
可以使用:show functions获取函数列表。describe function获得某个特定函数的使用帮助。
标签: