У меня есть датафрейм dfDistance
. Образец:
DataIndex CenterIndex distances array
65 0 115.63 [115.63,115.01,114.14]
65 1 115.01 [115.63,115.01,114.14]
65 2 114.14 [115.63,115.01,114.14]
Я хочу создать новый столбец, равный поэлементному делению значений в array
на соответствующее значение в distances
. Я пробовал следующее:
temp = dfDistance.select("DataIndex", "CenterIndex", "distances", (np.divide(dfDistance.array, dfDistance.distances)))
Это дало мне эту ошибку:
"cannot resolve '(`array` / `distances`)' due to data type mismatch: differing types in '(`array` / `distances`)' (array<float> and float).
Однако, когда я запускаю это:
a = [115.63,115.01,114.14]
b= 115.63
print(np.divide([115.63,115.01,114.14], 115.63))
Это работает и дает мне такой результат: [ 1. 0.99463807 0.98711407]
. Почему это не работает в случае PySpark, и как мне изменить мой код, чтобы он работал?