【发布时间】:2021-03-02 05:32:26
【问题描述】:
我希望加入一个基于低于该值的最接近匹配的值。在 SQL 中,我可以很容易地做到这一点。考虑以下数据:
tblActuals
|Date |Temperature:
|09/02/2020 |14.1
|10/02/2020 |15.3
|11/02/2020 |12.2
|12/02/2020 |12.4
|13/02/2020 |12.5
|14/02/2020 |11
|15/02/2020 |14.6
tbl系数:
|Metric |Coefficient
|10.5 |0.997825593
|11 |0.997825593
|11.5 |0.997663198
|12 |0.997307614
|12.5 |0.996848773
|13 |0.996468537
|13.5 |0.99638519
|14 |0.996726301
|14.5 |0.997435894
|15 |0.998311153
|15.5 |0.999135509
在 SQL 中,我可以通过以下方式实现加入:
Select
a.date,
b.temperature,
(select top 1 b.Coefficient from tblCoefficients b where b.Metric <= a.Temperature order by b.Metric desc) as coefficient
from tblActuals
有没有什么方法可以通过两个 pyspark 数据帧中的数据实现与上述相同的效果?我可以在 spark SQL 中获得类似的结果,但我需要数据帧的灵活性来实现我在数据块中创建的过程。
【问题讨论】:
标签: python dataframe apache-spark pyspark