Result 类型的方法 raw() 已弃用
The method raw() from the type Result is deprecated
在我们的 CDH 集群的最新升级中,我们遇到了许多方法,并且 类 已被弃用。
一个这样的例子是我用来从我们的 Hbase table 记录中获取 epochTimestamp 的方法 raw(),如下所示:
String epochTimestamp = String.valueOf(values.raw()[0].getTimestamp());
我的 PM 要求我删除所有这些已弃用的功能,并将其替换为最新的。
从https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Result.html我发现listCells 等同于raw(),但是谁能帮助我如何使用listCells 从HBase 记录中获取epochTimestamp?
public List listCells()
创建此结果中单元格的排序列表。
从 HBase 0.20.5 开始,这相当于 raw()。
因此您的代码应该如下所示:
String epochTimestamp = String.valueOf(values.listCells().get(0).getTimestamp());
要获取所有列和值,您可以像下面这样使用 CellUtil:
List<Cell> cells = listCells();
Map<String, String> result = new HashMap<>();
for (Cell c : cells) {
result.put(Bytes.toString(CellUtil.cloneQualifier(c)),Bytes.toString(CellUtil.cloneValue(c)));
}
的替代品
raw()
可能要迭代:
result.listCells()
这会为您提供一个单元格,然后要获取值,请使用:
CellUtil.cloneValue(cell)
查看文档:
https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/CellUtil.html
示例:
for (Cell cell : result.listCells()) {
String row = new String(CellUtil.cloneRow(cell));
String family = new String(CellUtil.cloneFamily(cell));
String column = new String(CellUtil.cloneQualifier(cell));
String value = new String(CellUtil.cloneValue(cell));
long timestamp = cell.getTimestamp();
System.out.printf("%-20s column=%s:%s, timestamp=%s,
value=%s\n", row, family, column, timestamp, value);
}
在我们的 CDH 集群的最新升级中,我们遇到了许多方法,并且 类 已被弃用。
一个这样的例子是我用来从我们的 Hbase table 记录中获取 epochTimestamp 的方法 raw(),如下所示:
String epochTimestamp = String.valueOf(values.raw()[0].getTimestamp());
我的 PM 要求我删除所有这些已弃用的功能,并将其替换为最新的。
从https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Result.html我发现listCells 等同于raw(),但是谁能帮助我如何使用listCells 从HBase 记录中获取epochTimestamp?
public List listCells()
创建此结果中单元格的排序列表。 从 HBase 0.20.5 开始,这相当于 raw()。
因此您的代码应该如下所示:
String epochTimestamp = String.valueOf(values.listCells().get(0).getTimestamp());
要获取所有列和值,您可以像下面这样使用 CellUtil:
List<Cell> cells = listCells();
Map<String, String> result = new HashMap<>();
for (Cell c : cells) {
result.put(Bytes.toString(CellUtil.cloneQualifier(c)),Bytes.toString(CellUtil.cloneValue(c)));
}
的替代品
raw()
可能要迭代:
result.listCells()
这会为您提供一个单元格,然后要获取值,请使用:
CellUtil.cloneValue(cell)
查看文档:
https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/CellUtil.html
示例:
for (Cell cell : result.listCells()) {
String row = new String(CellUtil.cloneRow(cell));
String family = new String(CellUtil.cloneFamily(cell));
String column = new String(CellUtil.cloneQualifier(cell));
String value = new String(CellUtil.cloneValue(cell));
long timestamp = cell.getTimestamp();
System.out.printf("%-20s column=%s:%s, timestamp=%s,
value=%s\n", row, family, column, timestamp, value);
}