当前位置: 首页 > 知识库问答 >
问题:

Hbase从单元格中提取值和时间戳

锺离俊雄
2023-03-14

在hbase中,我有很多列:name,city,...
不是所有列都有值(例如,有些行只能有'name')

我想提取一行中的所有列+列的时间戳(按特定顺序),如果值为null,我想返回空字符串。

我面临的问题是,我必须通过'family'和'qualifier'访问result.ListCells().Get(I)中的列(我不能通过result.ListCells().Get(I)的索引访问,因为空值被跳过)

scan.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("name"));
scan.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("city"));

ResultScanner scanner = table.getScanner(scan);

for (Result result = scanner.next(); result != null; result = scanner.next()){

    byte [] valCity = result.getValue("personal data", "city"); //can't get timestamp using this
  //check if valCity null write ("") else write the value
  //next column... 
}

共有1个答案

訾稳
2023-03-14

你可以尝试使用一个细胞扫描仪。参见下面的示例:

    CellScanner cellScanner = result.cellScanner();
    while (cellScanner.advance()) {
        Cell cell = cellScanner.current();
        byte[] columnName = Bytes.copy(cell.getQualifierArray(),
                cell.getQualifierOffset(),
                cell.getQualifierLength());
        byte[] familyName = Bytes.copy(cell.getFamilyArray(),
                cell.getFamilyOffset(),
                cell.getFamilyLength());
        long timestamp = cell.getTimestamp();
        .....
    }
 类似资料:
  • 有人知道从工作簿中的每个工作表中提取某个单元格值的命令吗?或者我可以写一个简单的宏?

  • 我正在尝试从表中提取特定的信息,基于哪个单元格被单击。到目前为止,我已经创建了一个可以在单击时工作的函数。问题是它总是返回第一个单元格行的值。 HTML: 如您所见,我尝试了和来启用提取槽ID。这是单击时调用的函数。 和总是从表的第一行返回值,即使我单击第二行、第三行、第四行等。 我如何声明我想要的信息不仅来自第一个,而且来自我单击的行。提前谢谢!

  • 1、我希望能够从封闭工作簿的单元格中读取值 算法: > 从关闭的excel文件读取- 需要读取第一行第1列到第200列的整行 变量1等于(A1)的单元格值,其中A1是字符串变量2等于(B1)的单元格值,其中B1是整数变量3等于(c1)的单元格值,其中c1是字符串:::变量200等于(第1行第200列)的单元格值,其中值是字符串 最好的方法是什么? 我应该能穿过100排 你能告诉我吗

  • 我构造了一个从数据帧中提取一行条件: 现在我想从一个特定列中取一个值:

  • 问题内容: 如何使用Get.setMaxVersions(10)方法返回HBase单元的所有带时间戳的版本,其中10是任意数字(可能是20或5之类的东西)?以下是控制台的主要方法,该方法创建一个表,插入10个随机整数,然后尝试检索所有整数以打印出来。 输出为9(因为循环在i = 9处结束,并且在Hue的HBase Browser Web UI中看不到多个版本。我该怎么做以修复版本,以便为0-9而不

  • 问题内容: 如何使用Get.setMaxVersions(10)方法返回HBase单元的所有带时间戳的版本,其中10是任意数字(可能是20或5之类的东西)?以下是控制台的主要方法,该方法创建一个表,插入10个随机整数,然后尝试检索所有整数以打印出来。 输出为9(因为循环在i = 9处结束,并且在Hue的HBase Browser Web UI中看不到多个版本。我该怎么做以修复版本,以便为0-9而不