У меня были ситуации, когда мне хотелось бы иметь циклы в моих преобразованиях, и, к сожалению, у меня не было лучшего опыта с этим (преобразования выполняются очень медленно, не хватает памяти и т. Д. c). Учитывая, что кадры данных обычно бывают небольшими (10 тысяч строк), я собираюсь просто собрать () и выполнить все вычисления на драйвере, прежде чем возвращать его обратно в кадр данных.
Проблема в том, что, когда я собираю, я неожиданно работаю со списками и хотел бы использовать функции pyspark.
Кажется, что я что-то упустил, и есть лучший способ сделать что я хочу использовать Spark, потому что я не могу найти какое-либо решение онлайн для вычислений на одном драйвере.
Существуют ли более эффективные способы управления драйверами искры?
Specifi c проблема, которую я пытаюсь решить:
У меня 10 сантехников и 100 локаций. Я хочу равномерно распределить рабочую нагрузку, и в то же время я хочу иметь минимальное расстояние до этих мест.
Шаг 1: оконная функция над местами, и я выбираю ближайшего инженера
Шаг 2 : окно работает над инженерами, и я выбираю первые 10 локаций
Это создает условия гонки, и у некоторых инженеров будет менее 10 локаций, а некоторые локации останутся неназначенными. Поэтому я хочу снова и снова вводить l oop, пока все места не будут назначены.
Спасибо!