有没有办法为 Hive 返回的所有记录动态添加一个常量值?

Posted

技术标签:

【中文标题】有没有办法为 Hive 返回的所有记录动态添加一个常量值?【英文标题】:Is there a way to add a constant value dynamically to all records returned in Hive? 【发布时间】:2017-10-20 04:02:50 【问题描述】:

我想在 Hive v1.2.1 中执行以下查询,其中 field_3 是从另一个表中查询的。

select user_id, start_date, field_3 as stop_date
from some_table;

对于返回的每条记录,field_3 的值都是相同的。问题是它存储在另一个表中。为了得到那个值,我可以得到它如下。

select max(some_field) as stop_date
from another_table;

目前,我已经对文字进行了硬编码。

select user_id, start_date, cast(cast('2017-10-19' as date) as timestamp) as stop_date
from some_table;

但是,这种方法是不可取的,因为适当的值会在一天中发生变化。

任何解决方案都应考虑是否可以通过 Hive SQL 上下文插入 Spark。

【问题讨论】:

【参考方案1】:

你可以加入另一个表的输出..

select user_id, start_date, b.field_3 as stop_date FROM 
some_table a,
( select max(some_field) as field_3 
from another_table ) b;

【讨论】:

我认为这行不通。有 3 个FROM。如果我删除最后一个FROM,那么它会按预期工作。请修改,我会接受。

以上是关于有没有办法为 Hive 返回的所有记录动态添加一个常量值?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在插入操作时检查 Hive 表中插入了多少行?

Elasticsearch 8.X 如何动态的为正文添加摘要字段?

Elasticsearch 8.X 如何动态的为正文添加摘要字段?

Elasticsearch 8.X 如何动态的为正文添加摘要字段?

有没有办法用已经存在的分区中的数据填充新添加的列?

为 hive 表中新添加的记录更新唯一 id 列