2016-09-18 2 views
0

'dt'をパーティションに指定すると、「FAILED:Execution Error、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 ...; 

、私はパーティションを使用しないとき、それはOKです: はここにパーティションを持つ私のコードです。

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 ...; 

だから私はこれの問題とそれを修正する方法を知りたいです。 多くのありがとうございます。

答えて

0

パーティションフィールドは、選択投影リストの最後にある必要があります。

つまり、dtはパーティションの列なので、最後にする必要があります。 *演算子を使用しているため、dtが最後かどうかはわかりません。

は、クエリを、次の試してみてください。

insert overwrite table novaya.user_goods_behaviour PARTITION (dt) 
Select `(dt)?+.+`, st from ....; 
+0

フィールドの選択順序を変更し、最後にdtを入れました。そして、それは動作します。ありがとう。 – yanachen

0

は、列名を指定して試してみてください。

あなたの問題を解決していないと、あなたは、クエリを挿入する前にこのクエリを実行しようとすることができます
insert overwrite table novaya.user_goods_behaviour PARTITION (dt) 
select column1,column2.... from ... 

set hive.exec.dynamic.partition.mode=nonstrict; 
関連する問題