簡體   English   中英

是否可以更改默認配置單元分區值?

[英]Is it possible to change default hive partition value?

我正在將 AWS Glue 元存儲用於 Hive。

當我們在 AWS S3 中擁有分區列的空數據的記錄時,Hive 默認為它們提供一個分區值:

_HIVE_DEFAULT_PARTITION_

這會導致問題,因為我們的分區列是一個整數,但這是一個字符串值。

是否有我們可以利用的設置為其提供整數默認值?

有一個設置hive.exec.default.partition.name您可以自行嘗試更改。 從 Hive 配置屬性

hive.exec.default.partition.name
默認值: _HIVE_DEFAULT_PARTITION_
加入:蜂巢0.6.0
如果動態分區列值為空/空字符串或任何其他無法轉義的值,則默認分區名稱。 該值不得包含任何在 HDFS URI 中使用的特殊字符(例如,':'、'%'、'/' 等)。 用戶必須注意動態分區值不應包含此值以避免混淆。

如果您已經有一個 NULL 分區,則可以將其重命名(移動)為新名稱以保留現有數據。

您可以將列更改為字符串,刪除HIVE_DEFAULT_PARTITION ,然后將列更改回 Int 嗎? 抱歉,我沒有在 AWS Glue Metastore 上工作。

通過蜂巢:

alter table <tablename> set tblproperties('EXTERNAL'='True');
alter table <tablename> change id int string;
alter table <tablename> set tblproperties('EXTERNAL'='False');
alter table <tabename> drop partition(id='__HIVE_DEFAULT_PARTITION__');

alter table <tablename> set tblproperties('EXTERNAL'='True');
alter table <tablename> change id string int;
alter table <tablename> set tblproperties('EXTERNAL'='False');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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