首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark 2.0数据集编码器的特点

Spark 2.0数据集编码器的特点
EN

Stack Overflow用户
提问于 2016-10-13 09:46:30
回答 1查看 1.6K关注 0票数 5

我正在构建一个数据集,其中每个记录都映射到一个案例类(例如,带有原始类型的CustomDataEntry )。

代码语言:javascript
复制
val dataset = spark.read (...) .as[CustomDataEntry]

到目前一切尚好

现在,我正在编写一个转换器,它使用CustomDataEntry的数据集,进行一些计算,并添加一些新的列(例如。查找纬度和经度并计算地理哈希

我的CustomDataEntry现在有一个属性/列(Geo散列),它是,不在case类中,而是存在于Dataset中。同样,这也很好,但似乎不太好,而不是type safe (如果这是可能的编码器)。

我可以在case类中添加这个选项字段,但这看起来很混乱,而不是composabl。一个更好的方法似乎是我应该在CustomDataEntry上混合一些特性

例如:

代码语言:javascript
复制
trait Geo{
    val geohash:String
}

,然后将数据集返回为

代码语言:javascript
复制
dataset.as[CustomDataEntry with Geo]

这不管用

错误:(21,10)无法找到存储在数据集中的类型的编码器。导入spark.implicits._支持基本类型(Int、String等)和Product (case类),以便在以后的版本中添加其他类型的序列化支持。.asCustomDataEntry与Geo

答案似乎很明显(不支持,未来的版本),但也许我忽略了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-13 10:26:37

编码器还没有IMHO,但您可以使用Encoders.kryo[CustomDataEntry with Geo]作为编码器的解决方案。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40017603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档