2017-08-16 242 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更新這個帖子的狀態。該錯誤是,我想投一個載體導入的存儲功能列表。在這一刻執行演員製造了這個錯誤。謝謝你試圖幫助我:) –