2015-03-31 83 views
3

我有一張有兩週價值條目的表格,我想將這些條目複製到一個按日期分區的表格中(如果它不存在,創建它)。如何使用Hive HQL創建分區表'像'未分區表?

我正在寫一個luigi任務來完成這個任務,我希望它能夠獨立於表格模式 - 也就是說,我不必指定列名和類型,並且在必要時會創建表IF NOT EXISTS。

我希望我可以使用:

CREATE TABLE IF NOT EXISTS test_part 
COMMENT 'This is a test table to see if partitioning works in this case' 
PARTITIONED BY (event_date string) 
AS select *, '2014-12-15' from source_db.source_table 
where event_at <'2014-12-16' and event_at >='2014-12-15'; 

但是這門課程的失敗:失敗:SemanticException [錯誤10068]:CREATE TABLE-AS-SELECT不支持分區目標表

我用「like」再次嘗試,結果基本相同。有沒有辦法做到這一點,我失蹤了?它不必是原子的。多個順序命令很好。

回答

1

你不要做一個創建表。

您創建一個表,首先使用描述source_table,然後你做一個插入到表分區(活動日期字符串)

2步它工作得更好。