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 table complex ( Col1 array<int>, Col2 map<string, int>, Col3 struct<a:string, b:int, c:double> );
将内容为: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获得某个特定函数的使用帮助。
时间: 2024-10-14 01:10:46