Какова временная и пространственная сложность операции PIVOT в Spark SQL? - PullRequest
1 голос
/ 24 июня 2019

В последнее время я работаю над большим набором данных ключ-имя-значение.Я хочу сгруппировать по имени, повернуть по ключу и выбрать первое значение для тех, которые будут генерировать новые столбцы.

Операция следующая (в spark sql):

val df: DataFrame
df.groupBy("key").pivot("name").agg(first("value"))
// all executors go out of memory for an input file of 600MB
df.write.parquet("...")

Проблема в том, что в настоящее время необходимо сгенерировать около 5000 столбцов, а также множество нулевых значений для каждого ключа.Поскольку SQL, похоже, строит оператор if-else для каждого нового столбца, мне было интересно, какова сложность времени и пространства для этой проблемы (так как всем исполнителям, похоже, не хватает памяти).

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...