Расчет евклидовых расстояний между всеми строками в PySpark

У меня есть PySpark DataFrame, как:

ID |   x   |  y 
------------------
 3 |   45  |  56
 6 |   32  |  34
 9 |   12  |  43

Я должен рассчитать матрицу расстояний, используя евклидово расстояние sqrt((x-x0)^2 + (y-y0)^2) между каждой парой точек х и у и остальными.

В выводе я хочу новый DF, как это:

 ID  |   3   |   6   |  9 
-----------------------------
  3  |  0.0  | 25.5  | 35.5
  6  | 25.5  |  0.0  | 21.9
  9  | 35.5  | 21.9  |  0.0

где у меня будет столько столбцов и строк, сколько и идентификаторов (например, матрицы).

Как я могу сделать это в PySpark эффективно?

Заранее спасибо.

0 ответов

Другие вопросы по тегам