astyanax
astyanax copied to clipboard
Reading a collection(Map) in cassandra throws exceptions.
MapSerializer<String, String> mapSer = new MapSerializer<String, String>(UTF8Type.instance, UTF8Type.instance);
Rows<Integer, String> rows = result.getRows();
for (Row<Integer, String> row : rows) {
ColumnList<String> cols = row.getColumns();
Column<String> col = cols.getColumnByName("map1");
Map<String, String> map = col.getValue(mapSer);
System.out.println("MAP!!: " + map);
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.cassandra.db.marshal.MapType.compose(Ljava/nio/ByteBuffer;)Ljava/util/Map; at com.netflix.astyanax.serializers.MapSerializer.fromByteBuffer(MapSerializer.java:37) at com.netflix.astyanax.serializers.MapSerializer.fromByteBuffer(MapSerializer.java:21) at com.netflix.astyanax.serializers.AbstractSerializer.fromBytes(AbstractSerializer.java:42) at com.netflix.astyanax.thrift.model.ThriftColumnImpl.getValue(ThriftColumnImpl.java:58) at AstCQLClient.read(AstCQLClient.java:173)
cqlsh:test1> select * from employees1; empid | deptid | first_name | last_name | map1 -------+--------+------------+-----------+------------------------------------- 222 | 333 | Eric | Cartman | {'bla': 'qwerty', 'bla1': 'asdfgh'}