我正在用一个非常简单的例子来尝试Cassandra。 我有一个存储在cassandra数据库中的列族:
[default@Hotelier] list Hotel;
Using default limit of 100
-------------------
RowKey: AZS_011
=> (column=name, value=43616d6272696120537569746573, timestamp=527682928555011)
上面的价值实际上是“坎布里亚套房”。当我使用以下代码从数据库中检索值时:
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 14 B
似乎通过引用col.column.value,我得到了整行内的所有内容。我的问题是如何才能获得没有名称和时间戳部分的值?非常感谢。
答案 0 :(得分:2)
使用以下方式获取每列。我用方法得到如下值:
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 {
}
}