Кассандра и вставка поплавковых колонн - PullRequest
1 голос
/ 02 ноября 2010

У меня есть следующая конфигурация Cassandra:


    <ColumnFamily CompareWith="LongType" Name="MiFamily">

Но когда я пытаюсь вставить следующее значение:


    public byte[] dateToByte(Date date) throws Exception {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();  
        DataOutputStream dos = new DataOutputStream(bos);  
        dos.writeLong(new Long(1).longValue());                      
        dos.flush();  
        byte[] data = bos.toByteArray();
        return data;        
    }

Я получаю следующее исключение:


    Exception in thread "main" me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:A long is exactly 8 bytes)
at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:28)
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl$1.execute(KeyspaceServiceImpl.java:103)
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl$1.execute(KeyspaceServiceImpl.java:96)
    at me.prettyprint.cassandra.service.Operation.executeAndSetResult(FailoverOperator.java:384)
    at me.prettyprint.cassandra.service.FailoverOperator.operateSingleIteration(FailoverOperator.java:190)
    at me.prettyprint.cassandra.service.FailoverOperator.operate(FailoverOperator.java:99)
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl.operateWithFailover(KeyspaceServiceImpl.java:151)
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl.batchInsert(KeyspaceServiceImpl.java:107)
    at borrar.PruebasCassandra.insertData(PruebasCassandra.java:77)
    at borrar.PruebasCassandra.main(PruebasCassandra.java:96)
Caused by: InvalidRequestException(why:A long is exactly 8 bytes)
    at org.apache.cassandra.thrift.Cassandra$batch_insert_result.read(Cassandra.java:13332)
    at org.apache.cassandra.thrift.Cassandra$Client.recv_batch_insert(Cassandra.java:717)
    at org.apache.cassandra.thrift.Cassandra$Client.batch_insert(Cassandra.java:692)
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl$1.execute(KeyspaceServiceImpl.java:100)
    ... 8 more

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

Cassandra 0.8.1 поддерживает Float:

Использование Java Hector:

StringSerializer se = new StringSerializer();
FloatSerializer fls = new FloatSerializer();
mutator.insert("mykey", "User", HFactory.createColumn("ftest", 0.12345678f, se, fls));
0 голосов
/ 02 ноября 2010

Спасибо за вашу помощь.Я делал что-то не так при использовании batchInsert.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...