Я использую dse 5.1.0 (в комплекте с spark 2.0.2.6 и scala 2.11.8).чтение таблицы кассандры, как показано ниже.
val sparkSession = ...
val rdd1 = sparkSession.table("keyspace.table")
Эта таблица содержит столбец List[String]
, скажем list1, который я читаю в scala rdd, скажем rdd1.Но когда я пытаюсь использовать кодировщик, он выдает ошибку.
val myVoEncoder = Encoders.bean(classOf[myVo])
val dataSet = rdd1.as(myVoEncoder)
Я пробовал с scala.collection.mutable.list
, scala.collection.immutable.list
, scala.collection.list
, Seq
, WrappedArray
.Все выдали ту же ошибку, что и ниже.
java.lang.UnsupportedOperationException: Cannot infer type for class scala.collection.immutable.List because it is not bean-compliant
MyVo.scala
case class MyVo(
@BeanProperty var id: String,
@BeanProperty var duration: Int,
@BeanProperty var list1: List[String],
) {
def this() = this("", 0, null)
}
Любая помощь будет оценена.