java - 使用Java获取Hbase中所有行的所有值

标签 java eclipse get hbase

我有以下代码。我正在尝试检索给定列族的表中的所有行。我能够获取所有行,但输出不是我所期望的。我得到一个显示 key 和时间戳但不显示值的输出。为什么不显示行的值?请帮忙。输出如下:

  keyvalues={Justin/marks:total/1375104216267/Put/vlen=7/ts=0, Justin/marks:markPercentage/  1375104186783/Put/vlen=4/ts=0}

//从hbase中获取所有行的代码

public class GetHbaseData {
public static void getdata() throws IOException{
@SuppressWarnings("resource")
HTable table = new HTable(HBaseConfiguration.create(), "Student");
Scan scan = new Scan();
scan.setCaching(20);

scan.addFamily(Bytes.toBytes("marks"));
ResultScanner scanner = table.getScanner(scan);

for (Result result = scanner.next(); (result != null); result = scanner.next()) {
    Get get = new Get(result.getRow());
    Result entireRow = table.get(get); 
    System.out.println(entireRow);
}
}

最佳答案

要获取所有行和所有列,您不需要在 for 循环中再次调用 Get。尝试这样的事情。

for (Result result = scanner.next(); (result != null); result = scanner.next()) {
    for(KeyValue keyValue : result.list()) {
        System.out.println("Qualifier : " + keyValue.getKeyString() + " : Value : " + Bytes.toString(keyValue.getValue()));
    }
}

关于java - 使用Java获取Hbase中所有行的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17939084/

相关文章:

java - java GUI创建的线程安全问题

java - Hibernate事务超时事件

Eclipse TCP/IP Monitor 有两个端口

Java 线程与 Scanner 第一次工作但第二次就不行了?

c#属性获取,设置不同类型

php - 在 URL 中传递 base64 编码的字符串

java - Java 中的客户端-服务器应用程序 - 单例问题

java - 几个JSP页面和requestURI

java - 运行 JRE 的 VisualVM

html - 如何自动下载可通过 html 表单获取的数据?我应该学什么?