[英]Create Hive Partitioned Table
如何使用分区P1和表T2的列创建表T1 ?
create table T2(F1 int, F2 varchar(101), ..., FN date);
create table T1 as select * from T2 partitioned by (P1 int);
抛出的错误:
AnalysisException:第 1 行中的语法错误:未定义:...2 as (select * from T1) partitioned by (P1 int) ^ Encountered: PARTITIONED Expected: LIMIT, ORDER, UNION CAUSED BY: Exception: Syntax error
知道这会很麻烦:
create table T1 (F1 int, F2 varchar(101), ..., FN date) partitioned by (P1 int);
我怎样才能达到T1 ?
为执行此示例,我们创建了一个表“USER_DATA”,其中 DATE_DT 和 COUNTRY 作为分区列。 我们将数据加载到“USER_DATA”。
创建表语法:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [column_constraint_specification] [COMMENT col_comment],
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)];
建表语句:
CREATE TABLE USER_DATA (USER_ID INT
,USER_NAME STRING
,SITE_DATA STRING)
PARTITIONED BY (DATE_DT STRING,COUNTRY STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
为执行此示例,我们创建了两个表“USER_DATA_DYN”和“USER_LOG_DATA”。 表“USER_DATA_DYN”将是一个分区表,其中列 DATE_DT 和 COUNTRY 作为分区列,表“USER_LOG_DATA”将是一个非分区表。 我们将使用非分区表“USER_LOG_DATA”在“USER_DATA_DYN”中插入数据。
创建表语法:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [column_constraint_specification] [COMMENT col_comment],
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)];
建表语句:
让我们创建表“USER_DATA_DYN”。
CREATE TABLE USER_DATA_DYN (USER_ID INT
,USER_NAME STRING
,SITE_DATA STRING
)
PARTITIONED BY (DATE_DT STRING,COUNTRY STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.