Кассандра возвращается целый ряд - PullRequest
1 голос
/ 18 апреля 2011

Я пробую Кассандру на очень простом примере. У меня есть семейство столбцов, хранящихся в базе данных кассандры:

[default@Hotelier] list Hotel;
Using default limit of 100
-------------------
RowKey: AZS_011
=> (column=name, value=43616d6272696120537569746573, timestamp=527682928555011)

Значение выше на самом деле "Cambria Suites". И когда я использую следующий код для получения значения из базы данных:

    String key = "AZS_011";
    Connector connector = new Connector();
    Cassandra.Client client = connector.connect();

    ColumnPath cp = new ColumnPath("Hotel");
    cp.setColumn(to_bb("name"));

    ColumnOrSuperColumn col = client.get(to_bb(key), cp, CL);                                                                    
    String hotel_name = new String(col.column.value.array(), UTF8);
    System.out.println("I found: " + hotel_name);
    connector.close();

Я получаю вывод: Я нашел:? GetnameCambria Suites ?? B

Кажется, что, ссылаясь на col.column.value, я получил все в пределах целого ряда. У меня вопрос, как я могу получить только значение без имени и метки времени? Большое спасибо.

1 Ответ

2 голосов
/ 18 апреля 2011

Используйте следующий способ, чтобы получить каждый столбец. Я сделал метод получить значения, как показано ниже:

for (ColumnOrSuperColumn c : result) {
            if (c.getColumn() != null) {
                String name = new String(c.getColumn().getName(), ENCODING);
                String value = new String(c.getColumn().getValue(), ENCODING);
                long timestamp = c.getColumn().getTimestamp();
                System.out.println("  name: '" + name + "', value: '" + value + "', timestamp: " + timestamp);
            } else {

            }
        }
...