У меня есть 2 кадра данных в Spark (Scala), например:
Клиенты:
+--------+-----------+----------------+-----------+---------------+---------------+
|id |postal_code|city_name |valeurPrise|latitudeOK |longitudeOK |
+--------+-----------+----------------+-----------+---------------+---------------+
|22318764|94200 |Ivry-sur-Seine |Number |48.815679000000|2.393150000000 |
|983026 |39330 |Mouchard |Street |46.978240000000|5.807290000000 |
|810029 |33260 |La Teste-de-Buch|Street |44.539033000000|-1.152371000000|
|1880521 |77360 |Vaires-sur-Marne|Street |48.877451000000|2.649342000000 |
|19502247|80090 |Amiens |Number |49.871260000000|2.300264000000 |
|17550309|72100 |Le Mans |Number |47.973960000000|0.206240000000 |
|22311804|94250 |Gentilly |Number |48.816344000000|2.340399000000 |
|284138 |14000 |Caen |Street |49.186034000000|-0.353779000000|
|2011904 |83000 |Toulon |Street |43.125340000000|5.930290000000 |
|21922785|92110 |Clichy |Number |48.910761000000|2.307201000000 |
+--------+-----------+----------------+-----------+---------------+---------------+
Магазин:
+------+-----------+----------------+---------------+------+
|erd_cd|ville |gps_wgs84_lat |gps_wgs84_lon |active|
+------+-----------+----------------+---------------+------+
|31312 |MAMOUDZOU |-12.780550000000|45.227770000000|VRAI |
|31901 |ST JOSEPH |-21.376620000000|55.616100000000|VRAI |
|31307 |STE MARIE |-20.899934381104|55.517562110882|VRAI |
|31303 |ST BENOIT |-21.043730000000|55.717850000000|VRAI |
|31302 |ST PIERRE |-21.340676722653|55.477203422331|VRAI |
|35023 |STE SUZANNE|-20.929250000000|55.633290000000|VRAI |
|31305 |ST DENIS |-20.880840000000|55.450700000000|VRAI |
|31304 |LE PORT |-20.956710000000|55.308050000000|VRAI |
|32530 |ST PAUL |-21.008640000000|55.271290000000|VRAI |
|19585 |BEAUNE |47.023000000000 |4.837550000000 |VRAI |
+------+-----------+----------------+---------------+------+
Первый содержит 19 000 000 строк а вторая содержит 650 строк.
Я хочу рассчитать расстояние de для каждого клиента в каждом магазине и сохранить результат в новом столбце в кадре данных клиента.
Как, например, [23, 47, 125, 8, ...] для первого покупателя, ...
В идеале, я тоже хочу сохранить "erd_cd".
Так что, пожалуй, это хороший вариант решения. Например, [31312: 23, 27654: 47, ...] будет здорово.
Я знаю формулу для вычисления расстояния, меня это не волнует.
У меня вопрос "Как я могу симулировать перекрестное соединение и применение функции "?
Я думаю о перекрестном соединении, но оно сгенерирует 19 000 000 000 строк (возможно, это слишком много).
У вас есть идеи?
Большое спасибо.