Я пытаюсь сохранить плоскую структуру данных с примерно 120 столбцами в виде файла Parquet в Spark с использованием Scala. Вот как я решил заняться этим, нужно немного предложений или идей, чтобы сделать это лучше, так как для меня это выглядит немного неуклюжим в настоящее время.Магазин около 120 Структура данных на основе столбцов на Spark Parquet Scala
- Создание логического разделения корпуса класса на основе данных
- Создать один композитный класс случай, который будет включать в себя все перечисленные выше классы тематических
- Используйте свечи взрываются, чтобы разделить составные столбцы к отдельным подразделениям (Похоже, искры взорваться работает только на Seq/Array/List, поэтому я вынужден хранить элементы класса case как Seq на шаге 2)
- Пишите паркету.
Идеи сделать это лучше?
Не уверен, что вы имеете в виду, но взрываются должны работать на что-нибудь. В примере в документах они взрываются в строке, разбиваясь на массив классов case. –
. case class Act (a: int, b: string, c: seq [string]), case class Boo (a1: int, b1: String), класс case C (a: Act, b: Boo). Итак, теперь, если я хочу взорвать элемент C a на три столбца (a: int, b: string, c: seq [string]) вместо одного составного столбца Act, как это сделать? – Anand
Вы не хотите взорваться. Explode создает новые строки. Вы можете разделить кусок StructType на несколько пар с помощью оператора select. Вы можете просто сделать 'select ($" a.a ", $" a.b ", ...)' –