Я пытаюсь написать некоторый код, который позволил бы мне вычислить какое-либо действие для группы строк в кадре данных. В PySpark это возможно путем определения Pandas UDF типа GROUPED_MAP. Однако в Scala я нашел только способ создания пользовательских агрегаторов (UDAF) или classi c UDF.
Мое временное решение - создать список ключей, которые будут кодировать мои группы, что позволит мне отфильтровать кадр данных и выполнить мое действие для каждого подмножества кадра данных. Однако этот подход не является оптимальным и очень медленным. Выполненные действия выполняются последовательно, что занимает много времени. Я мог бы распараллелить l oop, но я уверен, что это покажет какое-то улучшение, поскольку Spark уже распространен.
Есть ли лучший способ сделать то, что я хочу?
Редактировать: Пробовал распараллеливание с использованием Futures, но улучшения скорости не произошло, как и ожидалось