2017-08-16 198 views
0

写作时我有下面的类:UnsupportedOperationExeception在卡桑德拉表

case class AucLog(timestamp: UUID, modelname: String, good: Int, 
       list: List[Double]) 

class AucDatabase(override val connector : CassandraConnection) 
extends Database[AucDatabase](connector) { 
object users extends CMetrics with Connector 
} 
object AucDatabase extends AucDatabase(AucConnector.connector) 

abstract class AucMetrics extends Table[AucMetrics, AucLog] { 
object id extends UUIDColumn with PartitionKey 
object name extends StringColumn 
object ud extends IntColumn 
object zob extends ListColumn[Double] 
} 

abstract class CMetrics extends AucMetrics with RootConnector { 
def store(metric : AucLog): Future[ResultSet] = { 
insert.value(_.id, metric.timestamp) 
    .value(_.name, metric.modelname) 
    .value(_.ud, metric.good) 
    .value(_.zob, metric.list) 
    .consistencyLevel_=(ConsistencyLevel.ONE) 
    .future() 

}

DmpDatabase.create() 
AucDatabase.create() 

val pd = DmpDatabase.users.myselect() 

val timeout = new Timeout(500000) 
val result = Await.result(pd, timeout.duration) 

"<--- this attempt to read from my database is working - no problemo ---> " 
val todf = result.records.map { elem => elem.idcat } 
val rdd = spark.sparkContext.parallelize(todf) 

import spark.implicits._ 
rdd.toDF().show(100) 

---> I'm storing one line in my database to be sure that it is not empty when 
    i'm reading it. 
AucDatabase.users.store(new AucLog(UUIDs.timeBased(), "tyron", 0, List(0.1))) 
val second = AucDatabase.users.myselect() 
val resultmetric = Await.result(second, timeout.duration) 

-----> this line cause the Execption 
val r = spark.sparkContext.parallelize(resultmetric.records).toDF().show(

我不明白的是,我在做基本上是与这两个数据库同样的事情。然而,一个是抛出以下错误:UnsupportedOperationException:找不到编码器com.outworkers.phantom.dsl.UUID。

谢谢。

回答

0

所有store方法首先是宏观产生的,所以你并不需要创建一个。你遇到的问题可能根本与幻影无关,但可能与某种Spark构造有关。

幻像UUID只不过是java.util.UUID的类型别名,所以我很惊讶没有一个默认类型的直接编码器。如果你帮助我完成Encoder课程的全名(包括课程包),我可以明确地知道什么是中断的。

+0

我发现我的错误和did'nt更新这个帖子的状态。该错误是,我想投一个载体导入的存储功能列表。在这一刻执行演员制造了这个错误。谢谢你试图帮助我:) –