The following example code tries to put some case objects into a dataframe. The code includes the definition of a case object hierarchy and a case class using this trait:
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.sql.SQLContext
sealed trait Some
case object AType extends Some
case object BType extends Some
case class Data( name : String, t: Some)
object Example {
  def main(args: Array[String]) : Unit = {
    val conf = new SparkConf()
      .setAppName( "Example" )
      .setMaster( "local[*]")
    val sc = new SparkContext(conf)
    val sqlContext = new SQLContext(sc)
    import sqlContext.implicits._
    val df = sc.parallelize( Seq( Data( "a", AType), Data( "b", BType) ), 4).toDF()
    df.show()
  }
}    
When executing the code, I unfortunately encounter the following exception:
java.lang.UnsupportedOperationException: Schema for type Some is not supported
Questions
- Is there a possibility to add or define a schema for certain types (here type 
Some)? - Does another approach exist to represent this kind of enumerations? 
- I tried to use 
Enumerationdirectly, but also without success. (see below) 
 - I tried to use 
 
Code for Enumeration:
object Some extends Enumeration {
  type Some = Value
  val AType, BType = Value
}
Thanks in advance. I hope, that the best approach is not to use strings instead.