【发布时间】:2020-09-06 00:10:32
【问题描述】:
我有两个不同大小的数据框: df1(2200万行),包含纬度、经度、日期、事件 df2(100K行),包含纬度、经度、日期、温度
对于 df1 中的每一行,我想在表 df2 中找到该日期最接近的匹配位置(由欧几里德距离定义)(表 df2 具有所有可能的日期,而表 df1 没有)。
df1
+----------+-----------+----------+------------+
| Latitude | Longitude | Date | Event |
+----------+-----------+----------+------------+
| 10 | 10 | 11/10/20 | Water Polo |
| 20 | 20 | 11/22/19 | Cricket |
+----------+-----------+----------+------------+
df2:
+----------+-----------+----------+---------+
| Latitude | Longitude | Date | Weather |
+----------+-----------+----------+---------+
| 20 | 20 | 11/10/20 | 90 |
| 12 | 12 | 11/10/20 | 80 |
| 10 | 10 | 11/22/19 | 34 |
| 18 | 18 | 11/22/19 | 45 |
+----------+-----------+----------+---------+
期望的输出:
+----------+-----------+----------+---------+------------+
| Latitude | Longitude | Date | Weather | Event |
+----------+-----------+----------+---------+------------+
| 10 | 10 | 11/10/20 | 80 | Water Polo |
| 20 | 20 | 11/22/19 | 45 | Cricket |
+----------+-----------+----------+---------+------------+
我是 PySpark 的新手,不知道如何以有效的方式编写此查询。
【问题讨论】:
标签: dataframe apache-spark pyspark