spark sql中的数据类型(udt)v.s.编码器

x0fgdtte  于 2021-05-24  发布在  Spark
关注(0)|答案(0)|浏览(322)

在sparksql中 DataType s代表 Schema ,而且 Encoder 用于将jvm对象与内部sparksql表示进行转换。
在实践中,我们可能会有这样的错误 DataType ,通常发生在 DataFrame 使用自定义类型,但不使用 Dataset[T] 使用自定义类型。讨论 DataType (或 UDT )指向如何在sparksql中定义自定义类型的模式?
java.lang.unsupportedoperationexception:不支持类型的架构
在实践中,我们可能会有这样的错误 Encoder ,通常发生在 Dataset[T] 使用自定义类型,但不使用 DataFrame 使用自定义类型。讨论 Encoder 指向如何在数据集中存储自定义对象?
找不到数据集中存储的类型的编码器。通过导入sqlcontext.implicits支持基元类型(int、string等)和产品类型(case类)。在将来的版本中将添加对序列化其他类型的支持
在我的理解中,两者都涉及内部sparksql优化器(这就是为什么只有有限数量的 DataType s和 Encoder (提供);两者都有 DataFrame 以及 Dataset 只是 Dataset[A] ,然后。。
问题(或更多。。(混乱)
为什么第一个错误只出现在 DataFrame 但不是在 Dataset[T] ? 第二个错误的问题是一样的。。。
can创建 UDT 解决第二个错误?创建编码器能解决第一个错误吗?
我应该如何理解彼此之间的关系,以及它们是如何相互作用的 Dataset 还是spark sql引擎?
本帖的主旨是对这两个概念进行更多的探讨,以吸引大家的开放讨论,如果问题不太具体的话,请大家耐心点。。任何理解的分享都是值得的。谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题