Hive基础之Hive数据类型
Hive数据类型
参考:中文博客:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843448.html
英文:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types
1、列类型
TINYINT
SMALLINT
INT
BIGINT
BOOLEAN
FLOAT
DOUBLE
STRING
BINARY(Hive 0.8.0以上才可用)
TIMESTAMP(Hive 0.8.0以上才可用)
2、复合类型
arrays:ARRAY<data_type>
maps:MAP<primitive_type,data_type>
structs:STRUCT<col_name:data_type[COMMENT col_comment],.....>
union:UNIONTYPE<data_type,data_type,...>
3、时间戳
支持传统的unix时间戳,可选的纳秒级精度。
支持的转换:
1)整型数值类型:解读为以秒为单位的UNIX时间戳
2)浮动点数值类型:解读为以秒和小数精度为单位的UNIX时间戳。
3)字符串:JDBC兼容的java.sql.Timestamp格式“YYYY-MM-DD HH:MM:SS.fffffffff”(9位小数位精度)
注意:
1)Dates类型在 Hive 0.12.0 版本中引入了。
2)Decimal类型在 Hive 0.11.0 版本中引入了,并在 Hive 0.13.0 版本修订了。
4、Union类型
Union类型可以在同一时间点,保持恰好有一个指定的数据类型。
5、常量
数值类型默认是int,如果数值超出int的范围,就会被解释为bigint。
数值后面加上后缀表示:
Type | 后缀 | 示例 |
TINYINT | Y | 100Y |
SMALLINT | S | 100S |
BIGINT | L | 100L |
6、字符串类型
字符串可以用单引号或双引号。
注意:
1)Varchar类型在 Hive 0.12.0 版本中引入了。
2)Char类型将在 Hive 0.13.0 版本中引入。
7、浮点类型
浮点类型数值,默认为双浮点类型,目前不支持科学计数法。
8、NULL值
遗漏的值被代表为特殊值NULL。 要导入NULL字段的数据,需要查阅使用的SerDe的文档。 (默认的文本格式使用LazySimpleSerDe的解释字符串\ N为NULL)