用蜂巢创建表的格式

适用于:检查标记是的砖运行时

定义一个表使用蜂巢格式。

语法

创建(外部](如果存在]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_commentTBLPROPERTIES

请注意

在砖上面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。此外,您可以指定自己的输入和输出格式INPUTFORMATOUTPUTFORMAT。唯一的格式文本文件,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_examplejar;创建外部家庭(idINT,的名字字符串)格式SERDE“com.ly.spark.serde.SerDeExample”存储作为INPUTFORMAT“com.ly.spark.example.serde.io.SerDeExampleInputFormat”OUTPUTFORMAT“com.ly.spark.example.serde.io.SerDeExampleOutputFormat”位置“/ tmp /家庭/”;