Я пытаюсь вписать некоторые пропущенные значения на основе следующего 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 написать написание выражения.