是否可以在使用数据集API的情况下使用Option[_]
成员,例如Option[Int]
用于案例类?
我试图寻找一个例子,但尚未找到。这可能可以通过自定义编码器(映射?)来实现,但我还没有找到相关的示例。
使用Frameless库可能会实现这一点:https://github.com/adelbertc/frameless ,但应该有一种简单的方法可以使用基本Spark库完成。
更新
我正在使用:"org.apache.spark" %% "spark-core" % "1.6.1"
当尝试使用Option[Int]
时,发生以下错误:
无法找到存储在Dataset中的类型的编码器。原始类型(Int、String等)和Product类型(案例类)通过导入sqlContext.implicits._支持,对于序列化其他类型的支持将在未来版本中添加。
解决方案更新
由于我只是在转换为数据集之前在函数内部声明了案例类(在我的情况下是在object Main {
中),因此选项类型正常工作时,当我将案例类移到Main函数之外时。
as[_]
函数在没有任何额外 implicit 的情况下正常工作。我尝试使用你提到的 implicit,但无法使其正常工作(例如在函数内定义 case 类的情况下)。我的数据源是 MS SQL Server 数据库。 - Răzvan Flavius Panda