Thank you Aaaron! Your blog post helped me understand how a row with a compound key is stored and this helped me understand how to create the sstable files. For anyone who needs it this is how it works:
In Cassandra-cli the row looks like this: RowKey: 5 => (column=10:created, value=0000013f84be6288, timestamp=1372321637000000) >From this we see that the row key is a single Long value "5", and it has one >composite column "10:created" with a timestamp value. Thus the code should look like this: File directory = new File( System.getProperty( "output" ) ); IPartitioner partitioner = new Murmur3Partitioner(); String keyspace = "test_keyspace"; String columnFamily = "test_table"; List<AbstractType<?>> compositeList = new ArrayList<AbstractType<?>>(); compositeList.add( LongType.instance ); compositeList.add( LongType.instance ); CompositeType compositeType = CompositeType.getInstance( compositeList ); SSTableSimpleUnsortedWriter sstableWriter = new SSTableSimpleUnsortedWriter( directory, partitioner, keyspace, columnFamily, compositeType, null, 64 ); long timestamp = 1372321637000L; long nanotimestamp = timestamp * 1000; long k1 = 5L; long k2 = 10L; sstableWriter.newRow( bytes( k1 ) ); sstableWriter.addColumn( compositeType.builder().add( bytes( k2 ) ).add( bytes( "created" ) ).build(), bytes( timestamp ), nanotimestamp ); sstableWriter.close();