有没有办法为 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 返回的所有记录动态添加一个常量值?的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch 8.X 如何动态的为正文添加摘要字段?
Elasticsearch 8.X 如何动态的为正文添加摘要字段?