【发布时间】:2015-07-14 19:07:33
【问题描述】:
我正在尝试将 Scala Map(我正在尝试转换为 java.util.Map)存储到 cassandra 2.1.8 中。
数据结构如下:
Map[String -> Set[Tuple[String, String, String]]]
我创建的表如下:
CREATE TABLE mailing (emailaddr text PRIMARY KEY, totalmails bigint, emails map<text, frozen<set<tuple<text, text, text>>>>);
我首先尝试将 Set 转换为 java Set:
def emailsToCassandra(addr: emailAddress, mail: MailContent, number: Int) = {
println("Inserting emails into cassandra")
mail.emails.foreach(result =>
setAsJavaSet(result._2)
)
然后我构建查询并尝试将 Map 转换为 java Map:
val query = QueryBuilder.insertInto("emails", "mailing")
.value("emailAddr", addr.toString())
.value("totalmails", number)
.value("emails", mapAsJavaMap(mail.emails))
session.executeAsync(query)
我回来了:
java.lang.IllegalArgumentException: Value 1 of type class scala.collection.convert.Wrappers$MapWrapper does not correspond to any CQL3 type
我也尝试过这样做:
val lol = mail.emails.asInstanceOf[java.util.Map[String, java.util.Set[Tuple3[String, String, String]]]]
没用
提前谢谢你
【问题讨论】:
标签: scala cassandra datastax-java-driver