2016-03-10 64 views
0

我得到我的查詢錯誤,我不完全知道爲什麼:動態數據(蜂巢)

ALTER TABLE revenue ADD PARTITION (ds=from_unixtime(unix_timestamp(), 'yyyy-MM-dd')) LOCATION CONCAT('s3://userenroll-analytics/prod/revenue/avro/', from_unixtime(unix_timestamp(), 'yyyy/MM/dd')) 

錯誤:

Error while compiling statement: FAILED: ParseException line 1:38 cannot recognize input near 'from_unixtime' '(' 'unix_timestamp' in constant 

有沒有一種辦法在Hive ALTER TABLE查詢中使用動態生成的值?

(PS - 對於那些你誰說我應該用動態分區...我不希望使用蜂巢規定的目錄結構的語法。)當您使用動態分區的所有分區字段

回答

0

您需要確保您的動態分區模式使用非嚴格(hive.exec.dynamic.partition.mode)

請在查詢之前使用以下命令。

SET hive.exec.dynamic.partition.mode = nonstrict;

+0

正如我在我的文章中提到的,我特別沒有使用動態分區。上面的查詢手動添加一個分區。 –