hbase shell使用STARTROW、ENDROW、FILTER查出指定的列
2019-03-28 12:41|来源: 网路
hbase shell使用STARTROW、ENDROW、FILTER查出指定的列
引入相当的类
hbase(main):002:0> import org.apache.hadoop.hbase.util.Bytes
hbase(main):003:0> import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
hbase(main):004:0> import org.apache.hadoop.hbase.filter.BinaryComparator
hbase(main):005:0> import org.apache.hadoop.hbase.filter.CompareFilter
使用BinaryComparator比较器
scan 'test', { STARTROW=>'row-1',ENDROW=>'row-4',FILTER => SingleColumnValueFilter.new(Bytes.toBytes('d'), Bytes.toBytes('a'), CompareFilter::CompareOp.valueOf('EQUAL'), BinaryComparator.new(Bytes.toBytes('v-b')))}
使用SubstringComparator比较器
scan 'test1',{STARTROW=>'006040058',ENDROW=>'006040059',COLUMN=>'d:ltime',FILTER=>SingleColumnValueFilter.new(Bytes.toBytes('d'), Bytes.toBytes('eventCat'), CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('jbs'))}
现在还有个问题,就是在查出来的列发中,直接把byte直接转为string?求答案
相关问答
伪分布意味着您正在一台机器上运行所有进程。 您需要检查所有必需的进程是否正在运行: Hadoop的: 的NameNode 数据管理部 JobTracker的 的TaskTracker 动物园管理员: HQuorumPeer HBase的: HMASTER RegionServer的 您还需要确保您的hbase-site.xml包含定义主机名和端口的zookeeper的正确条目。 HBase FAQ和Wiki真的很不错。 你从那里错过了什么? Pseudo-distributed means tha
...
您正在使用带有“=”的SingleColumnValue过滤器。 您还可以使用该过滤器包含,<=,> =。 因此,您可以使用过滤器(>,20140501)和过滤器(<=,20140505) 。 像这样的东西。 请理解,过滤器越多,延迟就越多。 因为扫描发生在整个数据上并验证匹配 You are using, SingleColumnValue filter with "=". You can also include ,<=,>= with that filter. So you ca
...
我想它是在凌晨2点发布的,但这很简单。 我并没有完全围绕词典排序。 自99_ <9_以来,我最初的想法无法奏效。 我最终为startRow添加了一个PrefixFilter并删除了endRow,这样它只是抓取以OOID开头的行: 在Java中: xml.append("");
// Prefix Filter
PrefixFilter test = new PrefixF
...
尝试这个。 这是一种丑陋,但它适用于我。 import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
import org.apache.hadoop.hbase.util.Bytes
scan 't1', { COL
...
我在hbase中了解了一些基本的Filter和scan shell命令,发现SingleColumnValueFilter非常适合基于值的过滤单元。 以下命令对我有用: 扫描'Mytable',{COLUMNS => ['abc'],FILTER =>“SingleColumnValueFilter('abc','drug',=,'binary:avil')”,STARTROW =>“1100”,ENDROW =>“ 1121" } I've gone through some basics of
...
我们终于改变了HBase连接器。 通过it.nerdammer.spark.hbase(通过RDD),它可以很好地工作。 import it.nerdammer.spark.hbase._
rdd.toHBaseTable(tableName)
.toColumns("MATCHED")
.inColumnFamily(cfName)
.save()
We finally changed the HBase connector. With the it.nerdammer.sp
...
使用扫描对象设置开始和结束行,并在Hbase配置中设置该扫描对象,然后将该配置对象传递给tableInputFormat https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan html的 Scan scan = new Scan(startRow, endRow);
scan.setMaxVersions(MAX_VERSIONS);
//This can also be done if not specifie
...
假设您的问题是如何从Hbase查询数据。 Apache Phoenix在Hbase上提供了一个Sql Wrapper。 Hive Hbase Integration Hive还提供了一个基于Hbase的Sql Wrapper Spark Hbase Plugin允许您的Apache Spark应用程序与Apache HBase交互。 Assuming that your question is on how to query data from Hbase. Apache Phoenix Prov
...
您需要在hbase-site.xml中配置zookeeper znode。
zookeeper.znode.parent
/hbase
不匹配可能是由于默认配置。 您可以使用zkcli验证ZooKeeper中的可用znode。 You need to configure zookeeper znode in hbase-site.xml.
zo
...
看起来HBase表中的键存储为字符串。 这意味着像1,2,3等数字位于表的不同部分,并且它们之间还有许多其他键。 所以你的问题的答案是:在唯一的扫描操作的帮助下,无法扫描你想要的数值范围。 但是您有两种可能的方法来解决您的问题: 1)更改密钥的架构。 只需将您的密钥转换为整数并将其存储在HBase中。 这样,您的密钥将存储为4个元素的字节数组(如果使用长整数,则存储为8个元素),并以完全数字方式在HBase中进行排序。 此模式具有内存效率,但不支持shell,因为在HBase shell中,默认情
...