用蜂巢创建表的格式
适用于:砖运行时
定义一个表使用蜂巢格式。
语法
创建(外部]表(如果不存在]table_identifier((col_name1[:]col_type1(评论col_comment1),…)](评论table_comment](分区通过(col_name2[:]col_type2(评论col_comment2),…)|(col_name1,col_name2,…)](行格式row_format](存储作为file_format](位置路径](TBLPROPERTIES(key1=val1,key2=val2,…)](作为select_statement]row_format::SERDEserde_class(与SERDEPROPERTIES(k1=v1,k2=v2,…)]|分隔(字段终止通过fields_terminated_char(逃了出来通过escaped_char]](集合项目终止通过collection_items_terminated_char](地图键终止通过map_key_terminated_char](行终止通过row_terminated_char](零定义作为null_char]
列定义条款和之间的条款作为选择
条款可以出现在任何顺序。例如,您可以编写评论table_comment
后TBLPROPERTIES
。
请注意
在砖上面8.0运行时,您必须指定存储作为
或行格式
条款。否则,SQL解析器使用创建表(使用)语法解析它并创建一个默认三角洲表。
参数
table_identifier
表名称,选择合格的模式名。
语法:
(schema_name。)table_name
外部
定义了表使用提供的路径
位置
。分区的
指定分区的表列。
行格式
使用
SERDE
为一个表指定一个自定义SerDe条款。否则,使用分隔
条款使用本机SerDe和指定分隔符,转义字符,null字符等等。SERDE
为一个表指定一个自定义SerDe。
serde_class
指定一个自定义SerDe的完全限定类名。
SERDEPROPERTIES
键值对列表用于标记SerDe定义。
分隔
的
分隔
条款可以用来指定分隔符,本机SerDe和国家转义字符,null字符等等。字段终止的
用于定义一列分隔符。
收集项目终止,
用于定义一组项目分离器。
地图键终止的
用于定义映射键分隔符。
行终止,
用于定义一行分隔符。
空定义为
用于定义特定的值为NULL。
逃跑了
定义逃避机制。
收集项目终止,
定义一个集合项目分离器。
地图键终止的
定义了一个映射键分隔符。
行终止,
定义一个行分隔符。
空定义为
定义的特定值
零
。存储为
表的文件格式。可用的格式包括
文本文件
,SEQUENCEFILE
,RCFILE
,兽人
,拼花
,AVRO
。此外,您可以指定自己的输入和输出格式INPUTFORMAT
和OUTPUTFORMAT
。唯一的格式文本文件
,SEQUENCEFILE
,RCFILE
可以使用行格式SERDE
,只文本文件
可以使用行格式分隔
。位置
数据存储路径的目录表,这可能是分布式存储的路径。
评论
一个字符串来描述表。
TBLPROPERTIES
键值对列表用来标记表定义。
作为select_statement
使用select语句的数据填充表。
例子
——使用蜂巢格式创建表学生(idINT,的名字字符串,年龄INT)存储作为兽人;——使用另一个表的数据创建表student_copy存储作为兽人作为选择*从学生;——指定表评论和属性创建表学生(idINT,的名字字符串,年龄INT)评论“这是一个评论”存储作为兽人TBLPROPERTIES(“foo”=“酒吧”);和属性不同的条款——指定表意见创建表学生(idINT,的名字字符串,年龄INT)存储作为兽人TBLPROPERTIES(“foo”=“酒吧”)评论“这是一个评论”;——创建分区表创建表学生(idINT,的名字字符串)分区通过(年龄INT)存储作为兽人;——创建分区表有不同的条款创建表学生(idINT,的名字字符串)存储作为兽人分区通过(年龄INT);——使用行格式和文件格式创建表学生(idINT,的名字字符串)行格式分隔字段终止通过”、“存储作为文本文件;——使用复杂的数据类型创建外部表家庭(的名字字符串,朋友数组<字符串>,孩子们地图<字符串,INT>,地址结构体<街:字符串,城市:字符串>)行格式分隔字段终止通过”、“逃了出来通过“\ \”集合项目终止通过“_”地图键终止通过“:”行终止通过' \ n '零定义作为“foonull”存储作为文本文件位置“/ tmp /家庭/”;——使用预定义的自定义SerDe创建表avroExample行格式SERDE“org.apache.hadoop.hive.serde2.avro.AvroSerDe”存储作为INPUTFORMAT“org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat”OUTPUTFORMAT“org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat”TBLPROPERTIES(“avro.schema.literal”={”名称空间”:“org.apache.hive”,“名称”:“first_schema”,“类型”:“记录”,“字段”:[{" name ": " string1”、“类型”:“字符串”},{" name ": " string2相等”、“类型”:“字符串”}]}’);——使用个性化定制SerDe(我们可能需要添加JAR xxx。jar的第一,以确保我们能找到serde_class,或者您可能会遇到的CLASSNOTFOUND异常)添加JAR/tmp/hive_serde_example。jar;创建外部表家庭(idINT,的名字字符串)行格式SERDE“com.ly.spark.serde.SerDeExample”存储作为INPUTFORMAT“com.ly.spark.example.serde.io.SerDeExampleInputFormat”OUTPUTFORMAT“com.ly.spark.example.serde.io.SerDeExampleOutputFormat”位置“/ tmp /家庭/”;