如何实现通用编码器?

时间:2016-08-09 05:21:43

标签: scala apache-spark apache-spark-sql encoder

我想实现一个通用编码器,因为我在Spark 1.6上有一个小项目,当我将它迁移到spark 2.0时它会给我警告和错误 的

Unable to find encoder for type stored in a Dataset.  Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._  Support for serializing other types will be added in future releases.

因此我希望实现一个通用编码器并将其放在包对象中。我只想知道如何在spark 2.0中实现通用编码器?

1 个答案:

答案 0 :(得分:2)

开发自定义编码器通常从编写org.apache.spark.sql.Encoders对象的现有编码器开始。

请注意Spark中的许多地方检查使用的编码器是否是ExpressionEncoder的实例(即SparkSession.createDataset),因此您可能希望将表达式编码器作为自定义开发的基础进行检查。