【发布时间】:2017-05-07 09:50:44
【问题描述】:
我注意到大多数 Scalaz 类是不可序列化的。在这种情况下,我尝试使用 type class 对 Spark 中的数组进行自定义排序。
reduce 示例可能是这样的:
> val ord = Order[T]{ ... }
> sc.makeRDD[T](...).grupBy(...).map {
case (_, grouped) => IList[T](grouped.toList).sorted(ord).distinct(ord)
}
如您所料,此实现抛出 NotSerializableException,因为 Order[T] 不可序列化。
有没有办法让Order[T] 可序列化?在一个完美的世界里,我希望避免这个问题仍然使用 scalaz。在一个不太完美中,我愿意考虑其他实现。
如果发生这种情况,必须以可维护和可扩展的方式保持自定义排序和不同的实现。
【问题讨论】:
-
虽然这不能解决您的问题,但很高兴知道
cats.kernel.Order是Serializable
标签: scala serialization apache-spark scalaz