我想复制满载temp表的结构,并添加添加表属性,如partitioned by (partition_col), Format='ORC'
Temp表:
Create table if not exists tmp.temp_table( id int,
name string,
datestr string )
temp表创建成功
最终表:
CREATE TABLE IF NOT EXISTS tmp.{final_table_name} (
LIKE tmp.temp_table
)
WITH (
FORMAT = 'ORC'
partitioned by('datestr')
)
但是我得到的错误是"错误:编译语句时出错:FAILED: ParseException行1:63缺少EOF在'WITH'附近'temp_table' (state=42000,code=40000)">
实现此功能的任何解决方案。
您不应该使用like
,而应该使用create table as (CTAS)select * from mytab where 1=2
。
CREATE TABLE IF NOT EXISTS tmp.{final_table_name}
As select * from tmp.temp_table where 1=2
WITH (
FORMAT = 'ORC'
partitioned by('datestr')
)
Like将创建一个定义完全相同的空表。CTAS将使用相同的列序列、数据类型/长度、sql和您的定义来创建新的空表,因为我们使用1=2。