我有一个表,假设它的名字是“SampleTab”,它有一个名为“ColumnFam1”的ColumnFam1的column Family和一个名为“1”的Coll1Value的值。
我编写了这段代码,并试图通过传递我获得输出的列值来获得输出
/04/04 06:50:08信息zookeeper.zookeeper:Client environment:java.io.tmpdir=/tmp 15/04/04 06:50:08信息zookeeper.zookeeper:Client environment:java.compiler=15/04/04 06:50:08信息zookeeper.zookeeper:Client environment:java.compiler=15/04/04 06:50:08信息zookeeper.zookeeper:Client environment:os.name=linux 15/04/04 keeper.zookeeper:客户端环境:user.name=training 15/04/04 06:50:08信息zookeeper.zookeeper:Client环境:user.home=/home/training 15/04/04 06:50:08信息zookeeper.zookeeper:Client环境:user.home=/home/training 15/04/04 06:50:08信息zookeeper.zookeeper:Client环境:user.dir=/home/training 15/04/04 06:50:08信息/04 06:50:09信息zookeeper.clientcnxn:与本地主机建立套接字连接/127.0.0.1:2181,初始化会话15/04/04 06:50:09信息zookeeper.clientcnxn:在服务器本地主机上完成会话建立/127.0.0.1:2181,sessionid=0x14C84AE2FB30005,协商超时=40000 15/04/04 06:50:11信息zookeeper.zookeeper:初始化客户端连接,connectstring=localhost:2181 sessiontimeout=180000 watcher=hconnection 15/04/04 06:50:11信息zookeeper.clientcnxn:打开到服务器本地主机/127.0.0.1:2181的套接字04/04 06:50:11 INFO zookeeper.clientcnxn:建立到localhost/127.0.0.1:2181的套接字连接,启动会话15/04/04 06:50:12 INFO zookeeper.clientcnxn:服务器localhost/127.0.0.1:2181上完成会话建立,sessionid=0x14C84AE2FB30006,协商超时=40000 get:OUTPUT keyvalues=none
下面是我要获取的部分代码:
HTable table = new HTable(config, tablename);
byte [] row1 = Bytes.toBytes("KeyIn");
Put p1 = new Put(row1);
byte [] databytes = Bytes.toBytes("ColumnFam1");
p1.add(databytes, Bytes.toBytes("1"), Bytes.toBytes("col1value"));
table.put(p1);
Get g = new Get(Bytes.toBytes("col1value"));
g.addColumn(Bytes.toBytes("ColumnFam1"), Bytes.toBytes("1"));
Result result = table.get(g);
System.out.println("Get: OUTPUT " + result);
我有任何方法通过传递get中的值来获得columnfamily名称和列名,我也尝试过不使用g.addColumn行。它不给任何东西
Get g=new Get(bytes.tobytes("col1value“));
不起作用,因为该行不存在。您必须提供刚刚插入到get中的rowkey:
HTable table = new HTable(config, tablename);
byte [] row1 = Bytes.toBytes("KeyIn");
Put p1 = new Put(row1);
byte [] databytes = Bytes.toBytes("ColumnFam1");
p1.add(databytes, Bytes.toBytes("1"), Bytes.toBytes("col1value"));
table.put(p1);
Get g = new Get(row1);
//g.addColumn(Bytes.toBytes("ColumnFam1"), Bytes.toBytes("1")); // Not needed if you want to retrieve all families/columns
Result result = table.get(g);
System.out.println("Get: OUTPUT " + result);
如果知道列的名称(如其所示),则可以直接访问该值:
if (result.containsColumn(databytes, Bytes.toBytes("1"))) {
System.out.println("Value: " + Bytes.toStringBinary(result.getColumnLatest(databytes, Bytes.toBytes("1"))));
}
或者,如果要遍历所有检索到的列:
Result result = table.get(get);
if (result!=null) {
System.out.println(result);
Set<Entry<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>>> entries = result.getMap().entrySet();
for(Entry<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>> familyEntry: entries) {
byte[] family = familyEntry.getKey();
for(Entry<byte[], NavigableMap<Long, byte[]>> columnEntry: familyEntry.getValue().entrySet()) {
byte[] column = columnEntry.getKey();
System.out.println("Found column "+Bytes.toStringBinary(family)+":"+Bytes.toStringBinary(column));
if (columnEntry.getValue().size()>0) {
Entry<Long, byte[]> valueEntry = columnEntry.getValue().firstEntry();
System.out.println(" Found value "+Bytes.toStringBinary(valueEntry.getValue())+" with timestamp "+valueEntry.getKey());
}
}
}
}
columnentry.getvalue().entryset()
问题内容: 有没有一种方法可以使用列名而不是Python中的列索引来检索SQL结果列值?我正在将Python 3与mySQL一起使用。我正在寻找的语法非常类似于Java构造: 我的表有很多列,要不断为需要访问的每一列编制索引确实是很痛苦的。此外,索引使我的代码难以阅读。 谢谢! 问题答案: 该MySQLdb的模块具有DictCursor: 像这样使用它(摘自使用Python DB- API编写My
想知道什么在什么不在吗?Puppet 的 in 可以帮你, 如下面的表达式: if "foo" in $bar 如果 foo 是 $bar 的子串,表达式的值为 true。 如果 $bar 是个数组,并且 foo 是这个数组中的一个元素,表达式的值为 true。 如果 $bar 是一个哈希,foo 是 $bar 的一个键值,表达式的值为 true。 操作步骤 在你的配置清单中添加如下代码: if
问题内容: 使用JDBC时,我经常遇到类似 我问自己(也包括代码作者)为什么不使用标签来检索列值: 我听到的最好的解释是关于性能的。但是实际上,这使处理速度非常快吗?我不相信,尽管我从未进行过测量。我认为,即使按标签检索会稍慢一些,但它仍具有更好的可读性和灵活性。 因此,有人可以给我很好的解释,避免使用列索引而不是列标签来检索列值吗?两种方法的优缺点(也许涉及某些DBMS)是什么? 问题答案: 默
假设我正在初始化一个类obj,如下所示: 可以这样初始化吗?我的意思是我们像这样初始化字符串和基元值,但我指的是任何类。我们怎样才能得到它们,这样它们就可以用在同一个类的某个方法中呢?
问题内容: 如果您的类实现了可打包的,那么您就知道系统需要一个构造函数来根据刚刚收到的包裹构造您的类。 因此,通常必须像下面这样构造一个构造函数,这会使它有些混乱: 您会看到是否有一个参数,并且这些与读取相关的方法的调用方式如下: 然后就很清楚发生了什么,但是,它们根本没有任何参数。所以我想知道:这应该怎么做?这些方法是否在某种程度上是“智能”的,您不必告诉他们要获得哪个领域,他们总是会设法找到合
关于tsconfig.json的官方手册说: 如果tsconfig.json中没有“files”属性,则编译器默认将所有TypeScript(*.ts或*.tsx)文件包含在包含目录和子目录中。当存在“files”属性时,只包含指定的文件。 如果指定了“exclude”属性,则编译器将包括包含目录和子目录中的所有TypeScript(*.ts或*.tsx)文件,但排除的文件或文件夹除外。 “Fil