码迷,mamicode.com
首页 > 数据库 > 详细

SparkSql 隐式转换异常

时间:2020-06-12 14:59:06      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:异常   lin   div   top   evel   key   name   product   dataset   

 一、Sparksql隐式转换时异常描述

Cannot create encoder for Option of Product type, because Product type is represented as a row, and the entire row can not be null in Spark SQL like normal databases.
You can wrap your type with Tuple1 if you do want top level null Product objects, e.g. instead of creating `Dataset[Option[MyClass]]`,
you can do something like `val ds: Dataset[Tuple1[MyClass]] = Seq(Tuple1(MyClass(...)), Tuple1(null)).toDS`

二、原因和解决方法

此问题主要是由于将data[Row]转换成对应的的dataSet类型时,找不到对应的类型转换导致的,需要为对应的类型添加隐式转换,一般添加代码:

implicit val registerKryoEncoder = Encoders.kryo[MyClass]

SparkSql 隐式转换异常

标签:异常   lin   div   top   evel   key   name   product   dataset   

原文地址:https://www.cnblogs.com/chhyan-dream/p/13099010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!