Hive动态分区无法正常工作

时间:2016-05-07 16:26:31

标签: hadoop hive

我正在尝试在表格中创建动态分区。

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创建单独的文件夹。

1 个答案:

答案 0 :(得分:0)

你可以检查所有" xcg"来自" stock1"的值。有可能至少某些值或所有值都不符合String格式。我的意思是前。可以有null或数字而不是字符串。