大数据学习笔记-------------------(21)

2017/03/14 17:26
阅读数 97

第21章 HIVE 数据类型

         Hive中所有的数据类型都符合如下四种类型:列类型(Column Type)、文本类型(Literals)、Null类型(Null Values)、复杂类型(Complex Type)。

21.1列类型(ColumnType)

         Hive中被用作列类型的的数据类型如下:整型、字符型、时间戳、日期、浮点型、集合。

21.1.1整型(Intergral Types)

         整数类型数据可以用整数数据类型INT定义。当数据的范围超过INT的范围,需要使用BIGINT类型;如果数据类型小于INT,可以使用SMALLINT类型。TINYINTSMALLINT范围更小。下表描述各种INT数据类型:

21.1.2 字符串类型(StringTypes)

         字符串类型的数据类型可以使用单引号' '或双引号" "指定。它包含两种数据类型:VARCHAR或CHAR。Hive遵循C类型转义字符。下表中给出各种CHAR数据类型:

21.1.3时间戳(Timestamp)

         它支持具有可选纳秒精度(nanosecondprecision)的传统UNIX时间戳。它也支持java.sql.Timestamp格式"YYYY-MM-DD HH:MM:SS.ffffffffff"和格式"yyyy-mm-ddhh:mm:ss.ffffffffff"。

21.1.4日期(Dates)

         日期值可以用"年/月/日"格式描述用{{YYYY--MM--DD}}。

21.1.5小数点(Decimals)

         Hive中的DECIMAL类型和JAVA中的Big Decimal格式一样。它用来表示不可变的任意精度数据类型。语法和例子如下:

         语法:DECIMAL(精度,标量)

         例子:decimal(10,0)

21.1.6集合(UnionTypes)

         Union是异构(heterogeneous)数据类型的集合。可以使用create union创建实例。 语法和示例如下:

         语法:UNIONTYPE(int,double,array<string>,struct<a:int,b:string>)

         例子:{0:1} 、{1:2.0}、{2:["three","four"]}、 {3:{"a":5,"b":"five"}} 、{2:["six","seven"]}、{3:{"a":8,"b":"eight"}}、 {0:9} {1:10.0}

 

21.2文本类型(Literals)

21.2.1 浮点类型

         浮点类型只是带有小数点的数字。 一般来说,这种类型的数据由DOUBLE数据类型组成。

21.2.2 DecimalType

         十进制类型数据只是浮点值,其范围高于DOUBLE数据类型。十进制类型的范围约为(-10的-308次方)至(10的308次方)。

21.3 Null 值

         缺少的值由特殊值NULL表示

21.4 复杂类型

         Hive复杂类型包括:arrays、maps、strcucts

21.4.1 Arrays(数组)

         Hive中Arrays的使用方法和Java中使用方法一样。语法:ARRAY<data_type>

21.4.2 Maps(映射)

         Hive中的Maps和Java中的类似。语法:Map<primitive_type,data_type>

21.4.3 Structs(结构)

         Hive中的Structs类似于带有注释的复杂类型。语法:

         STRUCT<col_name:data_type[Commentcol_comment],...>

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部