如果我将'dt'指定为分区,则出现错误:“FAILED:执行错误,从org.apache.hadoop.hive.ql.exec返回代码2。 mr.MapRedTask”。 这里是我的代码以分区:将配置信息指定为分区时返回错误
create EXTERNAL table novaya.user_goods_behaviour
( member_srl string,
productid string ,
buy_amt bigint,
return_amt bigint,
cart_cnt bigint,
view_cnt bigint,
search_click_cnt bigint ,
brand string ,
mng_catecode1 int ,
mng_cate1 string ,
mng_catecode2 int ,
mng_cate2 string ,
mng_catecode3 int ,
mng_cate3 string ,
mng_catecode4 int ,
mng_cate4 string) partitioned by (dt string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' STORED AS parquet;
insert overwrite table novaya.user_goods_behaviour PARTITION (dt)
select * from ...;
然而,当我不使用的分区,这是确定。
create EXTERNAL table novaya.user_goods_behaviour
( member_srl string,
productid string ,
dt string,
buy_amt bigint,
return_amt bigint,
cart_cnt bigint,
view_cnt bigint,
search_click_cnt bigint ,
brand string ,
mng_catecode1 int ,
mng_cate1 string ,
mng_catecode2 int ,
mng_cate2 string ,
mng_catecode3 int ,
mng_cate3 string ,
mng_catecode4 int ,
mng_cate4 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS parquet;
insert overwrite table novaya.user_goods_behaviour select * from ...;
所以我想知道这是怎么回事,以及如何解决它。 非常感谢。
我改变了字段选择顺序,并把dt放在最后。它的工作原理。谢谢。 – yanachen