如果在Hive表/ DataFrame中找不到值,则获取下一个最大值

问题描述 投票:0回答:1

我有两个Hive表/ Spark数据框A和B

A
--------+----------+------+
product |  date    |  id  |
--------+----------+------+
A       | 20200201 |  X   |
--------+----------+------+
B       | 20200301 |  Y   |
--------+----------+------+

B
--------+-------+----------+
product | value | date     | 
--------+-------+----------+
A       |   10  | 20191230 |
--------+-------+----------+
A       |   5   | 20200310 |
--------+-------+----------+
B       |   20  | 20200220 |
--------+-------+----------+
B       |   10  | 20200130 |
--------+-------+----------+

而且我想要一个类似的结果>

--------+----+-------+
product | id | value |
--------+----+-------+
A       |  X |   10  |
--------+----+-------+
B       |  Y |   20  |
--------+----+-------+

对于产品,如果在B中找不到表/ DF A中的日期,则认为具有前一个日期的行将从B中获得value

列以得到结果。

有人可以帮我吗?

我有两个Hive表/ Spark数据框A和B A -------- + ---------- + ------ + product |日期| id | -------- + ---------- + ------ + A | 20200201 | X | -------- + ---------- + ------ + B | ...

apache-spark hive apache-spark-sql hiveql
1个回答
0
投票

我在SparkSQL中使用此方法来解决您的问题

© www.soinside.com 2019 - 2024. All rights reserved.