Json Паркет с пользовательской схемой с Spark - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь сделать что-то похожее на вопрос 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 (что является более плохим форматом) с типами паркета.

Спасибо!

...