Hi Narendra, Thanks for your email Which thrift version are you using.I am using thrift-0.0.5 in which batch_mutate takes map<ByteBuffer,map<String,List<Mutations>> as argument in ur sample code ur map is of type map<String,map<String,List<Mutations>> Please Suggest Thanks Anurag
On Fri, Mar 25, 2011 at 12:10 AM, Narendra Sharma <narendra.sha...@gmail.com > wrote: > Hope you find following useful. It uses raw thirft. In case you find > difficulty in build and/or running the code, please reply back. > > private Cassandra.Client createClient(String host, int port) { > TTransport framedTransport = new TFramedTransport(new TSocket(host, > port)); > TProtocol framedProtocol = new TBinaryProtocol(framedTransport); > Cassandra.Client client = new Cassandra.Client(framedProtocol); > framedTransport.open(); > client.set_keyspace("Keyspace"); > return client; > } > > private Mutation getMutation(SuperColumn sc) { > ColumnOrSuperColumn csc = new ColumnOrSuperColumn(); > csc.setSuper_column(sc); > csc.setSuper_columnIsSet(true); > Mutation m = new Mutation(); > m.setColumn_or_supercolumn(csc); > m.setColumn_or_supercolumnIsSet(true); > return m; > } > > private Mutation getMutation(Column c) { > ColumnOrSuperColumn csc = new ColumnOrSuperColumn(); > csc.setColumn(c); > csc.setColumnIsSet(true); > Mutation m = new Mutation(); > m.setColumn_or_supercolumn(csc); > m.setColumn_or_supercolumnIsSet(true); > return m; > } > > > private Column createColumn(String name, String value, long time) { > Column c = new Column(); > c.setName(name.getBytes()); > c.setValue(value.getBytes()); > c.setTimestamp(time); > return c; > } > > Cassandra.Client client = createClient(host, port); > long timeStamp = System.currentTimeMillis(); > > //For Standard CF > Column col1 = createColumn("name1", "value1", timeStamp); > Column col2 = createColumn("name2", "value2", timeStamp); > > Map<String, List<Mutation>> mutations = new HashMap<String, > List<Mutation>>(); > List<Mutation> mutation = new ArrayList<Mutation>(); > mutation.add(getMutation(col1)); > mutation.add(getMutation(col2)); > > mutations.put("StandardCF", mutation); > Map<ByteBuffer, Map<String, List<Mutation>>> mutationMap = new > HashMap<ByteBuffer, Map<String, List<Mutation>>>(); > mutationMap.put(ByteBuffer.wrap(getBytes("rowkey")), mutations); > client.batch_mutate(mutationMap, CL); > > > //for Super CF > SuperColumn info = new SuperColumn(); > info.setName("info"); > List<Column> cols = new ArrayList<Column>(); > cols.add(createColumn("name1", "val1", timeStamp)); > cols.add(createColumn("name2", "val2", timeStamp)); > info.setColumns(cols); > > > Map<String, List<Mutation>> mutations = new HashMap<String, > List<Mutation>>(); > List<Mutation> mutation = new ArrayList<Mutation>(); > mutation.add(getMutation(info)); > > mutations.put("SuperCF", mutation); > Map<ByteBuffer, Map<String, List<Mutation>>> mutationMap = new > HashMap<ByteBuffer, Map<String, List<Mutation>>>(); > mutationMap.put(ByteBuffer.wrap(getBytes("row-key")), mutations); > client.batch_mutate(mutationMap, CL); > > Thanks, > Naren > > > On Thu, Mar 24, 2011 at 10:01 PM, Anurag Gujral > <anurag.guj...@gmail.com>wrote: > >> I am in need of sample code(basically cassandra client) in java using >> batch_mutate >> If someone has please reply back >> Thanks >> Anurag >> > >