明智的加入蜂巢制作问题

时间:2019-01-12 01:11:36

标签: sql hadoop hive apache-spark-sql

我需要根据以下条件连接两个表。 我的表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中表A的当前星期。

加入后我的结果应该是

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

有人可以告诉我如何在蜂巢中实现这一目标

1 个答案:

答案 0 :(得分: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是一个db <>小提琴,尽管它在Postgres中也显示它可用于数据提供。