【发布时间】:2022-01-26 11:36:26
【问题描述】:
我是 Pyspark 的新手。 我在下面的 2 个表中有这样的数据。我正在使用数据框。
表 1:
| Id | Amount | Date |
|---|---|---|
| 1 | £100 | 01/04/2021 |
| 1 | £50 | 08/04/2021 |
| 2 | £60 | 02/04/2021 |
| 2 | £20 | 06/05/2021 |
表 2:
| Id | Status | Date |
|---|---|---|
| 1 | S1 | 01/04/2021 |
| 1 | S2 | 05/04/2021 |
| 1 | S3 | 10/04/2021 |
| 2 | S1 | 02/04/2021 |
| 2 | S2 | 10/04/2021 |
我需要加入上面的这 2 个数据帧以产生如下输出。
对于表 1 中的每条记录,我们需要从表 2 中获取自 Date 起有效的记录,反之亦然。例如,table1 在08/04/2021 上有£50 用于Id=1,但表2 在05/04/2021 上有Id=1 的记录,其中状态更改为S2。因此,对于08/04/2021,状态为S2。这就是我不确定如何在连接条件中给出这个输出
实现这一目标的有效方法是什么?
预期输出:
| Id | Status | Date | Amount |
|---|---|---|---|
| 1 | S1 | 01/04/2021 | £100 |
| 1 | S2 | 05/04/2021 | £100 |
| 1 | S2 | 08/04/2021 | £50 |
| 1 | S3 | 10/04/2021 | £50 |
| 2 | S1 | 02/04/2021 | £60 |
| 2 | S2 | 10/04/2021 | £60 |
| 2 | S2 | 06/05/2021 | £20 |
【问题讨论】:
-
请don't post dataframe data as images,使用文本格式。另外,加入条件是什么?
-
嗨@blackbishop,我已经删除了图像并使用了表格格式。对于表 1 中的每条记录,我们需要使表 2 中的记录在该日期有效,反之亦然。例如,table1 在 2021 年 8 月 4 日有 50 英镑的 id1,但表 2 在 2021 年 5 月 4 日有 id 1 的记录,其中状态更改为 S2。因此,对于 2021 年 8 月 4 日,状态为 S2。这就是我不确定如何在连接条件中给出这个输出
标签: dataframe apache-spark pyspark apache-spark-sql