Groovy CQL3查询正在返回一个键为空的行
我对Cassandra非常陌生,并尝试将Astyanax/CQL3用于一些简单的用例。我试图从Groovy应用程序中使用Cassandra 1.2版上的Astyanax和CQL3从一个简单的表中检索数据 我有以下列族(表): 以下是我查询数据的方式:Groovy CQL3查询正在返回一个键为空的行,groovy,cassandra,astyanax,cql3,Groovy,Cassandra,Astyanax,Cql3,我对Cassandra非常陌生,并尝试将Astyanax/CQL3用于一些简单的用例。我试图从Groovy应用程序中使用Cassandra 1.2版上的Astyanax和CQL3从一个简单的表中检索数据 我有以下列族(表): 以下是我查询数据的方式: def id = "xyz" def cfName = "t_index_credential" def mapSerializer = new MapSerializer<Date,String>(DateType.instance,
def id = "xyz"
def cfName = "t_index_credential"
def mapSerializer = new MapSerializer<Date,String>(DateType.instance, UTF8Type.instance)
def strSerializer = StringSerializer.get()
def cf = ColumnFamily.newColumnFamily(cfName, strSerializer, mapSerializer)
def cql = "SELECT * FROM ${cfName} WHERE id = '${id}';"
def query = keyspace.prepareQuery(cf).withCql(cql)
def result = query.execute().getResult()
result.getRows().each { row ->
println "rowKey: " + row.getKey()
}
尝试访问行中的任何列会导致以下结果:
result.getRows().each { row ->
row.getColumns().each { col ->
println col.dump()
}
}
org.apache.cassandra.db.marshal.MarshalException: Not enough bytes to read a map
感觉好像我错过了一些非常简单的东西。我做得对吗?我在这里也有同样的行为。但行键包含在cols中
def id = "xyz"
def cfName = "t_index_credential"
def mapSerializer = new MapSerializer<Date,String>(DateType.instance, UTF8Type.instance)
def strSerializer = StringSerializer.get()
def cf = ColumnFamily.newColumnFamily(cfName, strSerializer, mapSerializer)
def cql = "SELECT * FROM ${cfName} WHERE id = '${id}';"
def query = keyspace.prepareQuery(cf).withCql(cql)
def result = query.execute().getResult()
result.getRows().each { row ->
println "rowKey: " + row.getKey()
}
rowKey: null
result.getRows().each { row ->
row.getColumns().each { col ->
println col.dump()
}
}
org.apache.cassandra.db.marshal.MarshalException: Not enough bytes to read a map