在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引擎?
本帖的主旨是对这两个概念进行更多的探讨,以吸引大家的开放讨论,如果问题不太具体的话,请大家耐心点。。任何理解的分享都是值得的。谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!