我用的是猪拉丁文的org.apache.pig.backend.hadoop.hbase.HBaseStorage()。有可能得到一个值的所有版本吗?
在HBase Shell中,命令如下:
get 'table', 'cf:column', {COLUMN => 'cf:column', VERSIONS => 5}在猪身上也有可能吗?
输入样本:
我的HBase表如下所示:
hbase(main):019:0> put 'mytable', 'mykey1', 'cf:onlyoneclumn', 'value 1'
0 row(s) in 0.0070 seconds
hbase(main):020:0> put 'mytable', 'mykey1', 'cf:onlyoneclumn', 'value 2'
0 row(s) in 0.0070 seconds
hbase(main):021:0> put 'mytable', 'mykey1', 'cf:onlyoneclumn', 'value 3'
0 row(s) in 0.0050 seconds
hbase(main):022:0> put 'mytable', 'mykey1', 'cf:onlyoneclumn', 'value 4'
0 row(s) in 0.0050 seconds
hbase(main):023:0> get 'mytable', 'mykey1'
COLUMN CELL
cf:onlyoneclumn timestamp=1376470137654, value=value 4
1 row(s) in 0.0370 seconds
hbase(main):024:0> get 'mytable', 'mykey1', {COLUMN => 'cf:onlyoneclumn', VERSIONS => 5}
COLUMN CELL
cf:onlyoneclumn timestamp=1376470137654, value=value 4
cf:onlyoneclumn timestamp=1376470136632, value=value 3
cf:onlyoneclumn timestamp=1376470135411, value=value 2
3 row(s) in 0.0140 seconds发布于 2013-08-14 07:00:39
当前(0.11.1) HBaseStorage是带有读取HBase表的猪类,它不支持它。它只支持以下内容
optString -装载机选项。已知选项:在解析列名(默认值为空格或逗号)时,将行键加载为第一列-loadKey= -lt=maxKeyVal -gte=minKeyVal -lte=maxKeyVal -limit=numRowsPerRegion -limit=numRowsPerRegion最大行数,以检索每个区域-delim=char分隔符以用于解析列名(默认值为空格或逗号)当解析列名(默认为真)要缓存的行数(更快的扫描,更多内存)时,-ignoreWhitespace=(真为假)忽略空格。为了更快地加载,-noWAL=(true\ false )将写入设置为false。-caster=(HBaseBinaryConverter|Utf8StorageConverter) -minTimestamp= Scan的最小timeRange -maxTimestamp=扫描时间戳最大timeRange -timestamp= Scan的指定时间戳timeRange Utf8StorageConverter是默认的,但要非常小心地使用, 因为这可能导致数据丢失(请参阅http://hbase.apache.org/book.html#perf.hbase.client.putwal)。
您可以做的是获得HBaseStorage代码,并构建支持它的自己的装载机
https://stackoverflow.com/questions/18212047
复制相似问题