1. Encode an ADT sealed trait hierarchy into Spark DataSet column

    Encode an ADT sealed trait hierarchy into Spark DataSet column