当前位置: 首页 > 知识库问答 >
问题:

Hive alter table change column name将“NULL”赋予重命名的列

桂志诚
2023-03-14

我试图将表中的一个现有列重命名为一个新列。但是在名称更改之后,新列只给我' NULL '值。

镶木地板中桌子的存储格式

例如,

'user'是字符串数据类型的'Test'表中的一列。插入了一个值为'John'的示例记录。

Select user from Test;

结果:约翰

我已将“user”重命名为“user_name”,而无需更改任何数据类型。

ALTER TABLE Test CHANGE user user_name String;

Select user_name from Test;

结果:空

请让我知道如何解决这个问题?

MSCK修理桌子的命令在这种情况下是否有用?

我是否需要再次重新加载此表来解决此问题?

问候, 阿达什 K S

共有1个答案

秦鹏飞
2023-03-14

您可以做的是添加新字段,执行一次插入覆盖,然后删除旧字段。大概是这样的:

ALTER TABLE temp.Test ADD COLUMNS (user_new string) CASCADE;
insert overwrite table temp.Test
select 
      user_a,
      a,
      b,
      c,
      user_a as user_new
from temp.test;
ALTER TABLE temp.test  REPLACE COLUMNS(user_new string, a string, b string, c string );
 类似资料:
  • 只要一个动画,就可以带来生命。不幸的是,当设计师创建图标、logo 和吉祥物的时候,他们交付的通常都是图片或静态的 SVG。所以,虽然 GitHub 的章鱼猫、Twitter 的小鸟以及其它许多 logo 类似于生灵,它们看上去实际上并不是活着的。 Vue 可以帮到你。因为 SVG 的本质是数据,我们只需要这些动物兴奋、思考或警戒的样例。然后 Vue 就可以辅助完成这几种状态之间的过渡动画,来制作

  • 我正在尝试做一个命令,给用户一个角色。它以前是工作的,但不是它只是给机器人一个角色。 这也发生在我的level命令上,该命令应该检查用户的级别。它检查的是机器人的水平,而不是用户的水平。

  • 我正在努力学习和编写elasticsearch查询。我意识到有一个“exists”字段返回指定字段exists或not的文档。为了了解,我编写了一个简单的查询,我想学习更多和玩查询结构。

  • 功能说明 身份赋予API可以在客户在直播时,指定观众以特定身份观看直播,如将自身平台的观众身份传递到直播页面,让观众获得无缝的体验。 特别说明:如果您选用了此API,那么微信打赏,付费观看等涉及微信的功能将暂不可用 身份赋予逻辑图 接口说明 请求header GET http://{your-domain}/activity.php?a=userAssign 注:请将 {your-domain}

  • 问题内容: 我在用多个JOIN进行查询时注意到,除非给表名之一指定别名,否则查询将无法工作。 这是一个简单的例子来说明这一点: 这 不起作用 : 这样 做 : 有人可以解释吗? 问题答案: 您在查询中使用同一个表购买两次。您需要通过提供不同的名称来区分它们。 您需要提供一个别名: 想象两个人有完全相同的约翰·多伊。如果您致电John,双方都会回复您的电话。您不能给两个人使用相同的名字,并假设他们会

  • 我和dplyr一起工作,我有一个类似的小消息: 所以我可以对每个列使用ifelse函数和mutate: 但是在我真正的df中,我有很多列,那么这个wat是非常低效的。我需要一些更优雅的东西,使用mutate_at和列名,但这似乎很难。我试着用很多方法做到这一点,但每次我都会出错。有什么建议吗?