astyanax icon indicating copy to clipboard operation
astyanax copied to clipboard

Reading a collection(Map) in cassandra throws exceptions.

Open syash opened this issue 10 years ago • 0 comments

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'}

syash avatar Nov 19 '14 18:11 syash