2016-01-20 89 views
0

我有一个cassandra keyspace和表,我正在查询数据以写入另一个keyspace/table。我的代码如下:saveToCassandra保存整个表而不是一行

val test = sc.cassandraTable("model","data") 
.where("id = 9999999") 
.select("id","cl1","cl2","data") 
.filter(row => row.getString("data") == "Hello") 


test.saveToCassandra("model","dataspark",SomeColumns("id","cl1","cl2","data")) 

问题是,由于某种原因,它是写的一切,是在model.data到model.dataspark,而不只是我在我的VAL测试变量指定的。我必须有一些语法或错误。

如果我.collect并做一个.foreach(println)它只显示如预期的查询单个条目。我的saveToCassandra语句必须是错误的,但我不确定它有什么问题。

我试图用一个案例类和相同的结果,整个事情:

case class Record(id: Int, cl1: Int, cl2: Int, data: Option[String]) 
val test = sc.cassandraTable[Record]("model","data") 
.where("id = 9999999").select("id","cl1","cl2","data") 
test.saveToCassandra("model","dataspark", SomeColumns("id","cl1","cl2","data")) 

回答

0

我想通了这个问题。

val test = sc.cassandraTable("model","data") 
.where("id = 9999999") 

需要全部在同一行

val test = sc.cassandraTable("model","data").where("id = 9999999") 
相关问题