开发者学堂课程【大数据Hive教程精讲:Apache Hive--DDL--创建表--内外部表&like复制】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/90/detail/1373
Apache Hive--DDL--创建表--内外部表&like复制
内容介绍:
一、建表语法:
一、建表语法:
CREATE[EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], .
….)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment],.
….)]
[CLUSTERED BY (col_name, cor_name,...)
[SORTED BY (col_name [ASC|DESC], .
….)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format][LOCATION hdfs_path]
说明:
1、CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;
用户可以用 IF NOT EXISTS 选项来忽略这个异常。
2、EXTERNAL关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION)。
Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。
3、LIKE允许用户复制现有的表结构,但是不复制数据。
CREATE [EXTERNAL]TABLE [IF NOT EXISTS] [db_name.]table_name LlKE existing_table;
create table stu_buck(Sno int ,Sname string ,sex string,sage int,sdept string)clustered by (sno)
into 4 buckets
row format delimited
fields terminated by ', ';
LOAD DATA local INPATH '/root/hivedata/students.txt'INTO TABLE stu_buck;
insert overwrite table stu buck
select *from student cluster by (sno);
create table student(Sno int,Sname string,sex string ,Sage int ,sdept string)row format delimited
fields terminated by ',';
LOAD DaTA local INPATH '/root/hivedata/students.txt' INTO TABLE student;
create external table student_ext(Sno int ,Sname string ,sex string ,sage int ,sdept string) row format delimit.