我想实现一个通用编码器,因为我在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中实现通用编码器?
答案 0 :(得分:2)
开发自定义编码器通常从编写org.apache.spark.sql.Encoders对象的现有编码器开始。
请注意Spark中的许多地方检查使用的编码器是否是ExpressionEncoder的实例(即SparkSession.createDataset),因此您可能希望将表达式编码器作为自定义开发的基础进行检查。