I am trying to create a DataFrame from RDD, using a case class
I have observed the string fields are appearing nullable and double fields are non-nullable.
Please help me understand this behaviour
PS: I know that field can be made nullable by declaring it as Option[Double]
, but I wish to understand why this is happening?
scala> case class Airport(uuid:String, timestamp:String, iata:String, airport:String, city:String, state:String, country:String, lat:Double, long:Double)
scala> val ap_df = ap_nohdr.map(r => Airport(r(0).trim, r(1).trim, r(2).trim, r(3).trim, r(4).trim, r(5).trim, r(6).trim, r(7).trim.toDouble, r(8).trim.toDouble)).toDF();
scala> ap_df.printSchema
root
|-- uuid: string (nullable = true)
|-- timestamp: string (nullable = true)
|-- iata: string (nullable = true)
|-- airport: string (nullable = true)
|-- city: string (nullable = true)
|-- state: string (nullable = true)
|-- country: string (nullable = true)
|-- lat: double (nullable = false)
|-- long: double (nullable = false)