PySpark DataFrame вменяет нули на основе пользовательских функций / окна - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь вписать некоторые пропущенные значения на основе следующего DataFrame.

╔═══════╦═════╦═════╦══════╗
║ Group ║  X  ║  Y  ║Res   ║
╠═══════╬═════╬═════╬══════╣
║ a     ║ 100 ║ 100 ║ Null ║
║ a     ║ 200 ║ 100 ║ 50   ║
║ a     ║ 150 ║ 500 ║ 30   ║
║ b     ║ 100 ║ 110 ║ 4    ║
║ b     ║  95 ║  95 ║ Null ║
╚═══════╩═════╩═════╩══════╝

Если значение Res равно NULL, я бы хотел вложить значение Null в значение Res из ближайшей другой строки (определяемой евклидовым расстоянием с использованием столбцов X, Y), которая находится в та же группа. Мой желаемый фрейм данных, таким образом,

╔═══════╦═════╦═════╦══════╗
║ Group ║  X  ║  Y  ║Res   ║
╠═══════╬═════╬═════╬══════╣
║ a     ║ 100 ║ 100 ║ 50   ║
║ a     ║ 200 ║ 100 ║ 50   ║
║ a     ║ 150 ║ 500 ║ 30   ║
║ b     ║ 100 ║ 110 ║ 4    ║
║ b     ║  95 ║  95 ║ 4    ║
╚═══════╩═════╩═════╩══════╝

Я предполагаю, что оконные функции - способ сделать это, но я довольно новичок в Spark и не уверен, как go написать написание выражения.

...