Я пытаюсь сделать что-то похожее на вопрос Stackoverflow здесь : в основном преобразование .seq.gz
JSON файлов в Parquet файлов с определена правильная схема.
Я не хочу выводить схему , скорее, я бы хотел определить свою собственную, в идеале, имея свои Scala классы case, чтобы их можно было повторно использовать как модели для других заданий.
Я не совсем уверен, стоит ли десериализовать мой JSON в класс дел и позволить toDS()
неявно преобразовывать мои данные, как показано ниже:
spark
.sequenceFile(input, classOf[IntWritable], classOf[Text])
.mapValues(
json => deserialize[MyClass](json.toString) // json to case class instance
)
.toDS()
.write.mode(SaveMode.Overwrite)
.parquet(outputFile)
... или вместо этого используйте схему Spark Data Frame или даже схему Parquet . Но я не знаю, как это сделать.
Моя цель - иметь полный контроль над моими моделями и, возможно, сопоставить типы JSON (что является более плохим форматом) с типами паркета.
Спасибо!