2014-02-25 39 views
2

我想插入一條記錄到一個蜂巢分區表:一個記錄插入到蜂巢分區表

下表說明在下面給出:

name     string     None     
id      string     None     
work_done    string     None     

# Partition Information  
# col_name    data_type    comment    

work_done    string     None 

表包含一些記錄,我想希望在表中添加一條新記錄。

下面給出了我寫入插入記錄的代碼。

insert into table work_details_join_part partition (work_done) 
    select 'sammy', 'sam002', 'Assignment' from dual; 

寫上面的命令後,我得到一個錯誤:

SemanticException [Error 10096]: Dynamic partition strict mode requires at least one  static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict 

爲了避免這一點,我寫了下面的命令,然後執行我的插入命令,即使在那時我反覆得到同樣的錯誤。

set exec.dynamic.partition=true;                   
set exec.dynamic.partition.mode=nonstrict; 

請指導我。感謝提前:)

回答

1

也許只是重寫它是一個非動態的插入,如:

insert into table work_details_join_part partition (work_done='Assignment') 
select 'sammy', 'sam002' from dual; 

然而蜂巢是可怕的單個記錄插片所以我們期待非常糟糕的表現。還要記住每次運行這個查詢時1個帶有1條記錄的單個小文件將被添加到hdfs中,使得這個目錄充滿了小文件(這真的很糟糕)。

+1

非常感謝,但仍然不能編寫靜態語句。我的意思是它不允許在蜂巢或我寫的查詢是錯誤的。 – Sam