【发布时间】:2012-09-12 21:03:17
【问题描述】:
我是 hbase 的新手。你能告诉我如何将列添加到列族。我有这样的数据:
{
name: abc
addres: xyz
}
我有一个列族人的表格测试。如何将姓名和地址作为一列添加到此人。请在 hbase 命令行和 java 中显示。
【问题讨论】:
标签: java command-line hbase
我是 hbase 的新手。你能告诉我如何将列添加到列族。我有这样的数据:
{
name: abc
addres: xyz
}
我有一个列族人的表格测试。如何将姓名和地址作为一列添加到此人。请在 hbase 命令行和 java 中显示。
【问题讨论】:
标签: java command-line hbase
HBase 外壳:
来自 Hbase shell 维基:http://hbase.apache.org/book.html#shell
在指定的表/行/列和可选的时间戳坐标处放置一个单元格“值”。要将单元格值放入标有时间 'ts1' 的列 'c1' 下的行 'r1' 的表 't1' 中,请执行以下操作:
hbase> put 't1', 'r1', 'c1', 'value', ts1
在你的情况下是这样的:
hbase> put 'test', 'yourRow', 'person:name', 'abc'
hbase> put 'test', 'yourRow', 'person:address', 'xyz'
在 Java 中:
Configuration config = HBaseConfiguration.create();
HTable table = new HTable(config, "test");
Put p = new Put(Bytes.toBytes("yourRow"));
p.add(Bytes.toBytes("person"), Bytes.toBytes("name"),
Bytes.toBytes("abc"));
table.put(p);
【讨论】:
JP Bond 为您提供了您需要的示例代码 - 我只是想补充一点,HBase 的优点之一是它是稀疏的(即不为没有值的行保留列空间)。此设计决策的一个特点是,您只需为其编写即可创建一个新列(列族 + 限定符)。
【讨论】: