Is it possible to use Option[_]
member in a case class used with Dataset API? eg. Option[Int]
I tried to find an example but could not find any yet. This can probably be done with with a custom encoder (mapping?) but I could not find an example for that yet.
This might be achievable using Frameless library: https://github.com/adelbertc/frameless but there should be an easy way to get it done with base Spark libraries.
Update
I am using: "org.apache.spark" %% "spark-core" % "1.6.1"
And getting the following error when trying to use an Option[Int]:
Unable to find encoder for type stored in a Dataset. Primitive types
(Int, String, etc) and Product types (case classes) are supported by
importing sqlContext.implicits._ Support for serializing other types
will be added in future releases
Solution update
Since I was prototyping I was just declaring the case class inside the function before the conversion to the Dataset (in my case inside object Main {
).
Option types worked just fine when I moved the case class outside of the Main function.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…