Pyspark - рассчитать разницу между двумя столбцами - PullRequest
0 голосов
/ 02 мая 2020

У меня есть следующий датафрейм.

+------------------+---+----------+-----+-------+
|amount_outstanding| id|      type|yield|tenorID|
+------------------+---+----------+-----+-------+
|           1200000| c1| corporate|5.30%|   10.3|
|           2500000| g1|government|3.70%|    9.4|
|           1100000| c2| corporate| null|   13.5|
|           1750000| g2|government|4.80%|   12.0|
+------------------+---+----------+-----+-------+

Я ищу наиболее близкое совпадение для данного типа corporate для government на основе разницы в tenorID. если разница больше чем для одного наибольшего amount_outstanding, то следует выбрать один для совпадения.

ожидаемый результат

+------------------+---+----------+-----+-------+---------+
|amount_outstanding| id|      type|yield|tenorID| id_match|
+------------------+---+----------+-----+-------+---------+
|           1200000| c1| corporate|5.30%|   10.3|     g1  |
|           1100000| c2| corporate| null|   13.5|     g2  |
|           2500000| g1|government|3.70%|    9.4|     null|
|           1750000| g2|government|4.80%|   12.0|     null|
+------------------+---+----------+-----+-------+---------+

Есть ли способ, которым я могу добиться этого с помощью оконной функции или мне просто нужно сделать перекрестное соединение и найти разницу, а затем отфильтровать ее. ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...