If I want to store an Algebraic Data Type (ADT) (ie a Scala sealed trait hierarchy) within a Spark DataSet column, what is the best encoding strategy?
For example, if I have an ADT where the leaf types store different kinds of data:
sealed trait Occupation
case object SoftwareEngineer extends Occupation
case class Wizard(level: Int) extends Occupation
case class Other(description: String) extends Occupation
Whats the best way to construct a:
org.apache.spark.sql.DataSet[Occupation]