Hadoop 从非分区表创建分区表
假设我在配置单元中有内部orc非分区表: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
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
表格位置。这些文件不会神奇地变成拼花地板格式