【问题标题】:add all column names with a prefix in Hive在 Hive 中添加所有带有前缀的列名
【发布时间】:2016-12-29 08:49:26
【问题描述】:

我有一个包含数千列的表,需要与另一个包含数千列的表合并。我需要添加前缀以避免冲突,有什么快速的方法可以使用前缀更改一个表中的所有列?

【问题讨论】:

  • 有趣,我们不能在 SELECT 部分同时给所有列起别名

标签: hive concat alter-table alter


【解决方案1】:

如果你有更新元存储的必要权限,你可以试试这个查询,它会用前缀更新你的表的所有列名

UPDATE COLUMNS_V2 C JOIN  TBLS T
ON C.CD_ID= T.TBL_ID AND 
T.TBL_NAME='table_name' SET C.COLUMN_NAME =CONCAT('prefix_',C.COLUMN_NAME) ; 

在上面的查询中,替换以下内容:

'table_name':包含要为其添加前缀的列的表名。

'prefix_' : 您选择的前缀,例如 'tbl_'

【讨论】:

  • 谢谢。这里的 CD_ID 和 TBL_ID 是什么,表属性?
  • 是的 @Jin ,TBL_ID 和 CD_ID 是 Hive Metastore 表 TBLS 和 COLUMNS_V2 中的主键和引用键列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 2013-02-04
  • 1970-01-01
  • 2010-12-22
  • 2023-01-27
  • 2014-07-26
相关资源
最近更新 更多