scala – 如何为Option类型构造函数创建编码器,例如选项[INT]?
是否可以在与Dataset API一起使用的案例类中使用Option [_]成员?例如.选项[INT]
我试图找到一个例子,但还没找到.这可以通过自定义编码器(映射?)来完成,但我还没有找到一个例子. 这可能是使用Frameless库实现的:https://github.com/adelbertc/frameless但是应该有一个简单的方法来完成基础Spark库的完成. 更新 我正在使用:“org.apache.spark”%%“spark-core”%“1.6.1” 尝试使用Option [Int]时出现以下错误:
解决方案更新 由于我是原型设计,我只是在转换为数据集之前在函数内部声明了case类(在我的情况下,在对象Main {中). 当我将案例类移到Main函数之外时,选项类型工作得很好. 解决方法
我们只为我们支持
in SQLImplicits的类型子集定义了implicits.我们应该考虑为普通T添加Option [T],因为内部基础架构确实理解Option.您可以通过使用Tuple或
constructing the required implicit yourself创建案例类来解决此问题(尽管这是使用和内部API,因此可能在将来的版本中中断).
implicit def optionalInt: org.apache.spark.sql.Encoder[Option[Int]] = org.apache.spark.sql.catalyst.encoders.ExpressionEncoder() val ds = Seq(Some(1),None).toDS() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |