hbase - HBase convertScanToString 方法不接受 scan.write
问题描述
我正在尝试添加TableInputFormat.SCAN
到配置对象中。因此,我必须将扫描对象转换为字符串。但是,在下面的代码中:scan.write(dos)
显示编译时异常,即它没有找到write()
. 我正在导入包import org.apache.hadoop.hbase.client.Scan;
并具有相应的 JAR 版本:hbase-client-1.1.2.2.6.5.1000-24.jar
Scan scan = new Scan();
scan.setTimeRange(0L, 10L);
ByteArrayOutputStream out = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(out);
scan.write(dos); <---- compile time exception, no write() method exist!
感谢提供的任何帮助。
解决方案
以下代码解决了将扫描对象转换为字符串的问题:
private static String convertScanToString(Scan scan) {
try {
ClientProtos.Scan proto = ProtobufUtil.toScan(scan);
return Base64.encodeBytes(proto.toByteArray());
} catch (Exception e) {
e.printStackTrace();
return "";
}}
导入:import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;
推荐阅读
- sql - 刷新文本编辑器 SQL Server Management Studio v17.9
- tcl - Tcl 中的 regsub 用空字符串替换模式
- regex - Oracle 按 hh:mm 列分组
- python - 如何通过 PyCharm 控制台中的 pip 从 PyCharm 中的 github 安装包
- nginx - 如何为 NGINX 配置选择正确的密码
- javascript - 为什么我的渲染器进程出现“未定义导出”?
- javascript - 字符串,不能包含“.”、“#”、“$”、“[”或“]”
- javascript - 段落选择器内的标题不起作用
- go - Sleep Go 直到与操作系统无关的某个时间点
- python - 如何解析 getmac 命令的输出?