簡體   English   中英

如何重命名配置單元中的所有分區列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM