在配置单元中添加具有恒定值的新列

Posted

技术标签:

【中文标题】在配置单元中添加具有恒定值的新列【英文标题】:Adding a new column with a constant value in hive 【发布时间】:2014-05-02 17:22:30 【问题描述】:

我正在尝试从另一个带有额外列的表 errcode 创建一个名为 errtable 的表。 errcode 表具有以下架构:

标识字符串, 消息字符串

errtable 有一个额外的列,即 app_name

应用名称字符串, 标识字符串, 消息字符串

我尝试运行的查询如下:

INSRT 覆盖表 ERRTABLE 选择 $APPLICATION_NAME 作为应用名称、err.id、err.msg 从 ( 从错误代码中选择 * )呃;

APPLICATION_NAME 是一个常量变量,它使用 -d 选项 (-d APPLICATION_NAME=myapp) 传递给我的配置单元脚本。我收到以下错误消息: 失败:SemanticException [错误 10004]:第 4:7 行无效的表别名或列引用 'myapp':(可能的列名是:id、msg)。谁能帮我弄清楚我做错了什么?

【问题讨论】:

【参考方案1】:

@Santanu:试试这个应该可以的

INSERT overwrite table ERRTABLE  
SELECT '$APPLICATION_NAME' as appname, err.id as id, err.msg as msg FROM ERRCODE err;

【讨论】:

以上是关于在配置单元中添加具有恒定值的新列的主要内容,如果未能解决你的问题,请参考以下文章

Python - 从包含值列表的字典中添加具有映射值的新列

使用 ifelse 添加具有条件值的新列

如何使用scala数据框添加具有以下行值的新列[重复]

如何更改表以添加具有当前日期默认值的新列日期?

在 pyspark 中添加带有压缩列表的新列作为常量值

Spark和Scala,通过映射公用键添加具有来自另一个数据帧的值的新列[重复]