[英]How to rename all partition columns in hive
當我嘗試為已分區的一年日期范圍重命名現有表中的所有分區列時 - 這就是我得到的。
hive> ALTER TABLE test.usage PARTITION ('date') RENAME TO PARTITION (partition_date);
FAILED: ValidationFailureSemanticException Partition spec {partition_date=null} contains non-partition columns.
我從這里得到了那個語法: 1
鑒於我不是 100% 確定您想要的是重命名分區的值還是實際更改表分區的列。
假設您要重命名分區的值。
Hive 0.13 中存在問題,而 Hive 0.14 中工作正常。 無論如何,這應該有效:
set fs.hdfs.impl.disable.cache=false;
set fs.file.impl.disable.cache=false;
現在通過設置此屬性運行查詢。
> hive> set fs.hdfs.impl.disable.cache=false;
> hive> set fs.file.impl.disable.cache=false;
> hive> ALTER TABLE test.usage PARTITION (date='oldValue') RENAME TO PARTITION (date='newValue');
假設您要更改分區列
在這種情況下,您需要做的是重新創建表,更改表將被分區的列。
注意:請記住,如果分區內已有數據,則需要重新插入數據。
另請參閱此答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.