У меня есть фрейм данных, который выглядит так:
+--------------------+--------------------++-------------
| feature1| feature2| domain |
+--------------------+--------------------++-------------
|[2.23668528E8, 1....|[2.23668528E8, 1....| domain1 |
|[2.23668528E8, 1....|[2.23668528E8, 1....| domain2 |
|[2.23668528E8, 1....|[2.23668528E8, 1....| domain1 |
|[2.23668528E8, 1....|[2.23668528E8, 1....| domain2 |
|[2.23668528E8, 1....|[2.23668528E8, 1....| domain1 |
Схема фрейма данных такая:
|-- domain: string (nullable = true)
|-- feature1: vector (nullable = true)
|-- feature2: vector (nullable = true)
Столбцы feature1 и feature2 имеют тип Vector.Dense.Я хочу рассчитать квадрат расстояния.Я пробовал так:
all_pairs_df.withColumn(
"distance",
Vectors.squared_distance(all_pairs_df.feature2, all_pairs_df.feature1)
).show()
Но я получаю сообщение об ошибке, есть идеи, как добиться этого в pyspark без использования udf, который в конечном итоге вызывает BatchEvalPython?