как обрабатывать недостающие типы объектов json при чтении JSON в DF в искре - PullRequest
0 голосов
/ 25 июня 2018

как обрабатывать недостающие типы объектов JSON при чтении JSON в DF в искре в класс case

case class userInfo(user_id:String,name:String,div_id:String,div_Name:Option[String])

пример json:

    {"user_id":"123ABC","name":"john","div_id":"Business"}
    {"user_id":"44wsxer","name":"Valenico"}
    {"user_id":"33qwe","name":"Jmayar"}
    {"user_id":"121ioi","name":"xyzz","div_id":"Support"}

как читать выше json дляDF и присвоить null для объекта div_Name

1 Ответ

0 голосов
/ 25 июня 2018

Необходимо выполнить два шага:

  • Убедитесь, что поля, которые могут отсутствовать, объявляются как типы Scala с допустимым значением Nullable (либо Option[_], либо типы в штучной упаковке Java) в определении класса.

    В вашем случае все поля имеют значение String, поэтому никаких дополнительных изменений не требуется.

  • Убедитесь, что вы указали аргумент schema и не зависят от вывода схемы.Например, вы можете использовать Encoder:

    import org.apache.spark.sql.Encoders
    
    val schema = Encoders.product[userInfo].schema
    
    spark.read.schema(schema).json(...)
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...