Cómo crear un codificador para el constructor de tipo de opción, p. Opción [Int]?

¿Es posible usarOption[_] miembro en una clase de caso utilizada con la API de conjunto de datos? p.ej.Option[Int]

Traté de encontrar un ejemplo, pero aún no pude encontrar ninguno. Probablemente esto se pueda hacer con un codificador personalizado (¿mapeo?), Pero todavía no pude encontrar un ejemplo para eso.

Esto podría lograrse utilizando la biblioteca sin marco:https://github.com/adelbertc/frameless pero debería haber una manera fácil de hacerlo con las bibliotecas base de Spark.

Actualizar

Estoy usando:"org.apache.spark" %% "spark-core" % "1.6.1"

Y obteniendo el siguiente error al intentar usar una Opción [Int]:

No se puede encontrar el codificador para el tipo almacenado en un conjunto de datos. Los tipos primitivos (Int, String, etc.) y los tipos de productos (clases de casos) son compatibles con la importación de sqlContext.implicits. En futuras versiones se agregará soporte para serializar otros tipos.

Actualización de la solución

Como estaba creando prototipos, solo estaba declarando la clase de caso dentro de la función antes de la conversión al conjunto de datos (en mi caso dentroobject Main {)

Los tipos de opciones funcionaron bien cuando moví la clase de caso fuera de la función Principal.

Respuestas a la pregunta(2)

Su respuesta a la pregunta