我对这个领域还不熟悉,遇到了一个简单的问题。
我正在将数据加载到一个配置单元表中(使用另一个表tset1中的insert命令),该表按udate和day作为bucket进行分区。
insert overwrite test1 partition(udate) select id,value,udate,day from tset1;
所以现在的问题是,当我加载数据时,分区列中的值取错了。day作为分区,因为在我的表中,这是最后一列,所以在数据加载期间,它将day作为udate。
如何在数据加载期间强制查询采用正确的值?
hive (testdb)> create table test1_buk(id int, value string,day int) partitioned by(udate string) clustered by(day) into 5 buckets row format delimited fields terminated by ',' stored as textfile;
hive (testdb)> desc tset1;
OK
col_name data_type comment
id int
value string
udate string
day int
hive (testdb)> desc test1_buk;
OK
col_name data_type comment
id int
value string
day int
udate string
# Partition Information
# col_name data_type comment
udate string
hive (testdb)> select * from test1_buk limit 1;
OK
test1_buk.id test1_buk.value test1_buk.day test1_buk.udate
5 w 2000 10
请帮忙。
暂无答案!
目前还没有任何答案,快来回答吧!