一、直接建表

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] employee_external (    //EXTERNAL关键字添加为外部表
    name string,
    work_place ARRAY<string>,
    sex_age STRUCT<sex:string,age:int>,
    skills_score MAP<string,int>,
    depart_title MAP<STRING,ARRAY<STRING>>
)
COMMENT 'This is an external table'                            //对表的注释
ROW FORMAT DELIMITED                                      
FIELDS TERMINATED BY '|'                                       //如何分隔列(字段)
COLLECTION ITEMS TERMINATED BY ','                             //如何分隔集合和映射
MAP KEYS TERMINATED BY ':'
STORED AS TEXTFILE                                             //文件存储格式
LOCATION '/user/root/employee';                                // 数据存储路径(HDFS)

准备数据

在这里插入图片描述

建表

create table if not exists test1(
     id int,
     name string
     )
     row format delimited
     FIELDS TERMINATED BY ',';

装载数据

load data local inpath '/data/test.txt' overwrite into table test1;

查看表
在这里插入图片描述

建表完成

二、查询建表

将一条查询语句的结果作为一个表的内容创建

建表语句

create table 表名 as 查询语句; 

建表

create table test2 as select * from test1;

查看表2

在这里插入图片描述

三、like建表

该方法只能创建表的结构 不能创建数据

建表语法

creat table 表名 like 现有表的表名;

建表

create table test3 like test1;

查看表

在这里插入图片描述
并没有数据

通过desc命令查看表的状态

在这里插入图片描述

只有表结构 表数据需要后期再次添加

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐