Hadoop 从非分区表创建分区表

Hadoop 从非分区表创建分区表,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,假设我在配置单元中有内部orc非分区表: CREATE TABLE IF NOT EXISTS non_partitioned_table( id STRING, company STRING, city STRING, country STRING, ) STORED AS ORC; 是否有可能通过cte-like语句以这种方式创建拼花地板分区表 create partitioned_table PART

假设我在配置单元中有内部orc非分区表:

CREATE TABLE IF NOT EXISTS non_partitioned_table(
        id STRING,
        company STRING,
        city STRING,
        country STRING,
        )
    STORED AS ORC;
是否有可能通过cte-like语句以这种方式创建拼花地板分区表

create partitioned_table PARTITION ON (date STRING) like non_partitioned_table;
alter table partitioned_table SET FILEFORMAT PARQUET;
这个create语句不起作用


所以基本上我需要添加列,并使表由该列分区。我知道我可以通过简单的CREATETABLE语句来创建表,但我需要在CREATETABLE LIKE中这样做,并且修改后的您的表没有一个
date
列作为开始,所以您必须创建一个新的列

你也许能,但我自己还没试过。如果您想试试,我建议分区位置在现有HDFS目录之外

无论如何,不支持由

 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
 LIKE existing_table_or_view_name
 [LOCATION hdfs_path];
您需要从第一个表复制
descripe TABLE
架构,然后修改它并添加由
分区的
,还可以选择指定存储为
。(
SET FILEFORMAT PARQUET
不会就地更改数据类型)


然后,如果您想在新表中输入数据,您需要插入覆盖表以获得回复,但是您能否澄清一下您的想法(
SET-FILEFORMAT PARQUET
不会更改数据类型)?更改文件格式后,
show create table
与之前不同,您所做的只是更新配置单元元存储中的一个条目<代码>hdfs dfs-ls
表格位置。这些文件不会神奇地变成拼花地板格式