我必须更改分区列名(而不是分区规范),我在hive和一些google页面中查找命令。我可以找到修改分区规范的选项,
,例如
在/table/country=' US‘中,我可以将美国更改为美国,但我希望将country更改为欧陆。
我觉得更改分区列名的唯一选择是删除和重新创建表。还有别的选择吗?请帮帮我。
提前谢谢。
发布于 2016-08-02 03:27:05
可以通过以下方式更改元数据中的列名:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ChangeColumnName/Type/Position/Comment
但正如文档所述,它只会改变元数据。单元分区被实现为具有命名模式columnName=spec的目录。因此,还需要使用"hadoop“命令更改HDFS上这些目录的名称。
发布于 2018-11-13 16:35:27
您可以使用简单的交换方法更改分区列。
hadoop fs -mv <current_table_name> <temp_table_name>hadoop fs -mv <temp_table_name> <current_table_name>注意:mv命令通过减少复制时间将文件从一个位置移动到另一个位置。或者,我们可以使用LOAD DATA INPATH将数据复制到原始表。
发布于 2019-10-21 12:22:29
不能更改单元格中的分区列,实际上hive不支持更改分区列。
您可以这样想-- Hive通过在hdfs中创建一个带有分区列值的文件夹来存储数据,因为如果您试图更改单元分区,这意味着您试图更改hive表的整个目录结构和数据,如果您在去年进行分区,这是不可能的exp,这就是目录结构的样子。
tab1/clientdata/**2009**/file2
tab1/clientdata/**2010**/file3如果要更改分区列,可以执行以下步骤
创建另一个带有分区列中所需更改的单元表
Create table new_table ( A int, B String.....)从上一个表加载数据
Insert into new_table partition ( B ) select A,B from table Prev_tablehttps://stackoverflow.com/questions/32111036
复制相似问题