Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy CQL3查询正在返回一个键为空的行_Groovy_Cassandra_Astyanax_Cql3 - Fatal编程技术网

Groovy 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,

我对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, 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