找不到play.api.libs.json.jsvalue的编码器
我有这样的案例类,
case class PrimeraRemoteCopyConfig(
links: Option[Vector[JsObject]] = None,
status: Option[Vector[JsObject]] = None,
targets: Option[Vector[JsObject]] = None,
groups: Option[Vector[JsObject]] = None,
groupTargets: Option[Vector[JsObject]] = None,
groupVolumes: Option[Vector[JsObject]] = None)
object PrimeraRemoteCopyConfig {
implicit val _format = Json.format[PrimeraRemoteCopyConfig]
}
case class PrimeraConfig(
systemUid: String,
tenantId: String,
systemWWN: String,
remoteCopyConfig: Option[PrimeraRemoteCopyConfig] = None)
object PrimeraConfig {
implicit val _format = Json.format[PrimeraConfig]
}
并且使用FlatmapGroupswithState
使用状态管理的Spark数据集。
但是,我在线程“ main” java.lang.unsupportedoperationException中得到
22/05/10 17:07:48 INFO BlockManager: Initialized BlockManager: BlockManagerId(driver, 192.168.0.199, 53277, None)
例外:找不到play.api.libs.json.jsvalue的编码器 - 地图值类:“ play.api.libs.json.jsvalue”
- field (class: "scala.collection.Map", name: "underlying")
- array element class: "play.api.libs.json.JsObject"
- option value class: "scala.collection.immutable.Vector"
- field (class: "scala.Option", name: "links")
- option value class: "model.PrimeraRemoteCopyConfig"
- field (class: "scala.Option", name: "remoteCopyConfig")
- root class: "model.PrimeraConfig"
at org.apache.spark.sql.errors.QueryExecutionErrors$.cannotFindEncoderForTypeError(QueryExecutionErrors.scala:1000)
我尝试使用encoders.product.jsobject [jsobject]定义jsobject的编码器,但是它不起作用。我在这里做错了什么
I have case classes like these
case class PrimeraRemoteCopyConfig(
links: Option[Vector[JsObject]] = None,
status: Option[Vector[JsObject]] = None,
targets: Option[Vector[JsObject]] = None,
groups: Option[Vector[JsObject]] = None,
groupTargets: Option[Vector[JsObject]] = None,
groupVolumes: Option[Vector[JsObject]] = None)
object PrimeraRemoteCopyConfig {
implicit val _format = Json.format[PrimeraRemoteCopyConfig]
}
case class PrimeraConfig(
systemUid: String,
tenantId: String,
systemWWN: String,
remoteCopyConfig: Option[PrimeraRemoteCopyConfig] = None)
object PrimeraConfig {
implicit val _format = Json.format[PrimeraConfig]
}
And I have spark dataset that uses state management, using flatMapGroupsWithState
.
However I am getting
22/05/10 17:07:48 INFO BlockManager: Initialized BlockManager: BlockManagerId(driver, 192.168.0.199, 53277, None)
Exception in thread "main" java.lang.UnsupportedOperationException: No Encoder found for play.api.libs.json.JsValue
- map value class: "play.api.libs.json.JsValue"
- field (class: "scala.collection.Map", name: "underlying")
- array element class: "play.api.libs.json.JsObject"
- option value class: "scala.collection.immutable.Vector"
- field (class: "scala.Option", name: "links")
- option value class: "model.PrimeraRemoteCopyConfig"
- field (class: "scala.Option", name: "remoteCopyConfig")
- root class: "model.PrimeraConfig"
at org.apache.spark.sql.errors.QueryExecutionErrors$.cannotFindEncoderForTypeError(QueryExecutionErrors.scala:1000)
I tried defining encoders for JsObject using Encoders.product[JsObject] However it does not work. What am I doing wrongly here
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论