Como armazenar objetos personalizados no conjunto de dados?

De acordo comApresentando conjuntos de dados Spark:

Como esperamos ansiosamente pelo Spark 2.0, planejamos algumas melhorias interessantes para conjuntos de dados, especificamente: ... Codificadores personalizados - enquanto atualmente geramos automaticamente codificadores para uma ampla variedade de tipos, gostaríamos de abrir uma API para objetos personalizados.

e tenta armazenar o tipo personalizado em umDataset levar ao seguinte erro como:

Não foi possível encontrar o codificador para o tipo armazenado em um conjunto de dados. Tipos primitivos (Int, String, etc) e Tipos de produto (classes de caso) são suportados pela importação de sqlContext.implicits._ O suporte para serializar outros tipos será adicionado em versões futuras

ou:

Java.lang.UnsupportedOperationException: nenhum codificador encontrado para ....

Existem soluções alternativas existentes?

Observe que esta pergunta existe apenas como um ponto de entrada para uma resposta do Wiki da Comunidade. Sinta-se livre para atualizar / melhorar a pergunta e a resposta.

questionAnswers(8)

yourAnswerToTheQuestion