没有可用的S隐式编码器时,如何获取Encoder [Seq [S]]?

时间:2019-10-10 14:27:25

标签: scala apache-spark

Spark提供的隐式编码器可以很容易地获取原始或产品类型序列的编码器,即:

import spark.implicits._
val mySeqEncoder = newSequenceEncoder[Seq[Float]]
val myTupleSeqEncoder = newSequenceEncoder[Seq[(Float, Timestamp)]]

没有任何问题。

但是,如果没有可用的序列类型隐式编码器怎么办? 例如,假设我需要一个Seq[(Timestamp, Row)]的编码器。 我可以使用

为每个元素获取一个编码器
import org.apache.spark.sql.Encoders

// schema = the schema of the row to encode
Encoders.tuple[Timestamp, Row](Encoders.TIMESTAMP, RowEncoder(schema))

是否可以通过提供元素的编码器来构建序列编码器?还是有另一种合适的方法?

0 个答案:

没有答案