3
我想构建一个HBase表的rowkey空间的随机样本。假设我希望大约有1%的HBase密钥随机分布在表中。这样做的最好方法是什么?抽样HBase表keyspace空间
我想我可以编写一个MapReduce作业来处理所有的数据并且拉出1/100的密钥......或者使用一个协处理器。
我想构建一个HBase表的rowkey空间的随机样本。假设我希望大约有1%的HBase密钥随机分布在表中。这样做的最好方法是什么?抽样HBase表keyspace空间
我想我可以编写一个MapReduce作业来处理所有的数据并且拉出1/100的密钥......或者使用一个协处理器。
您可以使用RandomRowFilter来获取样本。
我最终在猪身上做了这件事,但无论出于何种原因,它的速度非常慢。我得到了我需要的数据,所以我没有更进一步,但我应该尝试亚历山大的答案。
data = LOAD 'hbase://MARS1'
USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
'A:*', '-loadKey true')
AS (id:bytearray, A_map:map[]);
justkeys = FOREACH data GENERATE id;
-- rough estimate of number of keys in hbase table
smp = SAMPLE justkeys 0.000001;
STORE smp INTO 'key_sample' USING PigStorage('\t');
你也可以应用'KeyOnlyFilter',因为只考虑密钥。 –