日期明智的加入 Hive 问题

Posted

技术标签:

【中文标题】日期明智的加入 Hive 问题【英文标题】:date wise JOIN in Hive making issue 【发布时间】:2019-01-12 01:11:36 【问题描述】:

我需要根据以下条件加入两个表。 我的表 A 看起来像

  id,date
  12,20190114
  13,20190118
  14,20190123

表 B 的样子

  id,date
  13,20190108
  12,20190108
  13,20190101
  13,20190115
  14,20190129
  14,20190122

当我申请加入条件时,我需要考虑以下几点

   1. id should be same for both tables
   2. date from table A should join with the date previous to the table B
    dates(table B dates are weekly basis... I need to find the current week). 

也就是说,表 B 的日期是每周的日期。例如,对于 id=13 表 A 的日期是 20190118 ,表 B 的对应日期是 20180115 ,即表 A 所在的本周...

JOIN 后我的结果应该是这样的

  id,a.date,b.date
  13,20190118,2018015
  12,20190114,20190108
  14,20190123,20190122

谁能告诉我如何在蜂巢中实现这一目标

【问题讨论】:

【参考方案1】:

这在 Hive 中有效吗?

select a.id, a.date, max(b.date)
from a join
     b
     on a.id = b.id and b.date <= a.date
group by a.id, a.date;

Here 是一个 dbfiddle,表明它适用于提供的数据,尽管在 Postgres 中。

【讨论】:

"on a.id = b.id and b.date @BigD。 . .该代码执行您的问题指定的操作。问题是它是否在 Hive 中运行。

以上是关于日期明智的加入 Hive 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Hive SQL 中按日期范围独家加入?

如何明智地按季度分组日期?

如何明智地按季度分组日期?

我们可以明智地进行分区日期吗?

如何在angularjs中获取每周明智的开始和结束日期

加入两个表后 Hive 时间戳值更改