мой прототип (написанный на R с пакетами dplyr и tidyr) упирается в стену с точки зрения вычислительной сложности - даже на моем мощная рабочая станция. Поэтому я хочу перенести код на Spark с помощью Scala.
Я просмотрел все преобразования, действия, functions (SparkSQL) и операции с столбцами (также SparkSQL) и обнаружил все эквиваленты функций, кроме одного для функции tidyr::spread()
, доступной в R.
df %>% tidyr::spread(key = COL_KEY , value = COL_VAL)
в основном распределяет пару "ключ-значение" по нескольким столбцам. Например. стол
COL_KEY | COL_VAL
-----------------
A | 1
B | 1
A | 2
будет преобразован в
A | B
------------
1 | 0
0 | 1
2 | 1
Если нет готового решения: не могли бы вы указать мне правильное направление? Может быть, функция, определяемая пользователем?
Я могу выбрать версию Spark (и Scala) бесплатно (поэтому я бы выбрал последнюю, 2.0.0
).
Спасибо!