【发布时间】:2016-11-15 22:51:14
【问题描述】:
我使用 hbase over google cloud bigtable 来存储我的大数据。我有 2 个程序。首先,使用 python 将数据存储到 hbase 中,其次,通过连接到同一个端点从 java 中读取这些信息。
所以我可以从 python 交互式 shell 中将字节数组读回整数(命令 15)
In [13]: row.cells['stat']['viewability'][0].value
Out[13]: '\x00\x00\x00\x00\x00\x00\x00A'
In [14]: len(row.cells['stat']['viewability'][0].value)
Out[14]: 8
In [15]: struct.unpack('>Q', row.cells['stat']['viewability'][0].value)
Out[15]: (65,)
但我无法将相同的字节数组读回 java Integer 数据类型
我在java中使用以下内容
byte[] columnFamilyBytes = Bytes.toBytes("stat");
byte[] viewabilityColumnBytes = Bytes.toBytes("viewability");
Integer viewability = Bytes.toInt(c1.getValue(columnFamilyBytes, viewabilityColumnBytes));
我得到 NULL 作为响应。
【问题讨论】:
-
说 c1 是 HBase Result 对象是否正确?如果是这样,您能否验证结果中是否存在 stat:viewability 单元格(最简单的方法似乎是打印出 c1.toString() 的结果,假设结果不大)。
标签: java python hbase google-cloud-dataproc