Esquema para o tipo Qualquer não é suportado

Estou tentando criar um UDF spark para extrair um mapa de pares (chave, valor) de uma classe de caso definida pelo usuário.

A função scala parece funcionar bem, mas quando tento convertê-la em uma UDF no spark2.0, estou executando o erro "Esquema para o tipo Qualquer não é suportado".

case class myType(c1: String, c2: Int)
def getCaseClassParams(cc: Product): Map[String, Any] = {

    cc
      .getClass
      .getDeclaredFields // all field names
      .map(_.getName)
      .zip(cc.productIterator.to) // zipped with all values
      .toMap

  }

Mas quando tento instanciar um valor de função como UDF, resulta no seguinte erro -

val ccUDF = udf{(cc: Product, i: String) => getCaseClassParams(cc).get(i)}

java.lang.UnsupportedOperationException: Schema for type Any is not supported
  at org.apache.spark.sql.catalyst.ScalaReflection$.schemaFor(ScalaReflection.scala:716)
  at org.apache.spark.sql.catalyst.ScalaReflection$.schemaFor(ScalaReflection.scala:668)
  at org.apache.spark.sql.catalyst.ScalaReflection$.schemaFor(ScalaReflection.scala:654)
  at org.apache.spark.sql.functions$.udf(functions.scala:2841)

questionAnswers(1)

yourAnswerToTheQuestion