我正在尝试在表格中创建动态分区。
1)第一个表称为stock1,其中存在非分区数据。 这是架构:
hive> describe stock1;
id int
xcg string
stock string
sector string
country string
dt string
open float
high float
low float
close float
volume int
adj_close float
2)第二个表是stock2,我希望动态分区数据。
hive> create table stock2(id int,stock string,sector string,country string,dt string,open float,high float,low float,close float,volume int,adj_close float) PARTITIONED BY (xchng string);
3)现在启用动态分区:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
4)将数据从stock1加载到stock2。
insert overwrite table stock2 partition(xchng)select id,stock,sector,country,dt,open,high,low,close,volume,adj_close,t.xcg as xchng from stock1 t;
现在当我检查hive文件夹下的stock2时,我只看到一个默认分区
/user/hive/warehouse/stock.db/stock2/xchng=的 HIVE_DEFAULT_PARTITION
如何纠正,以便为每个xchng创建单独的文件夹。
答案 0 :(得分:0)
你可以检查所有" xcg"来自" stock1"的值。有可能至少某些值或所有值都不符合String格式。我的意思是前。可以有null或数字而不是字符串。