外部库 hbase 存在问题
外部库 hbase 的使用存在问题,具体问题描述如下:
hbase 建表和插入数据如下:
create ‘test’, ‘cf’
put ‘test’, ‘row1’, ‘cf:a’, ‘aaaa’
put ‘test’, ‘row2’, ‘cf:b’, ‘bbbb’
put ‘test’, ‘row3’, ‘cf:c’, ‘cccc’
put ‘test’, ‘row4’, ‘cf:d’, ‘dddd’
外部库数据访问脚本如下:
=hbase_open(“192.168.16.4:2181”)
=hbase_scan(A1,“test”)
用 hbase_scan(A1,“test”)查询只能查询出 row1 的 cf:a 的数据,其余列的数据无法显示,如下图:
用 hbase_scan(A1,“test”,“cf”) 查询, 直接报字段不存在错误, 如下图:
用 =hbase_scan@c(A1,“test”).fetch(10) 查询,也报字段不存在的错误,如上图
看你这个插入数据,列簇是 cf,列名分别为 abcd,那 put 数据时 row1 那块是不是 4 行都要用相同的 row1,这样插入数据是一行 4 列这种?
另外,通过其他软件或者 hbase 命令行 取出数据对吗?
而且在外部库中用 habase_scan(A1,“test”,“cf”) 加列簇查询数据,直接报字段不存在的错
每一行的列是不一样的,row1 只有 a 列,row2 只有 b 列,依次类推;通过 hbase 的 shell,查询是正常的
在此之前不支持可变列,是按首行字段来生成的表结构。
若是想要此效果
可修改
这种效果才是正确的,因为 hbase 存的是键值对,很多数据都不会把字段拉平。请教一下,怎么修改?
“很多数据都不会把字段拉平”,
不太明白,能给个示意图说明一下
=hbase_scan(A1,“test”; “cf”) 改为:=hbase_scan(A1,“test”; FamilyFilter:“cf”)
拉平的意思就是你前面给的那个效果图,每一行的字段数是一样的,没有值的写空值
我按照这个把查询改了,test 后面用“;”,可还是报字段不存在的错误呀!如果把“;”改成“,”报 no match found
您好,我刚刚私信你了,麻烦看下私信
加你微信了,麻烦通过一下,微信发给我吧
支持行对应的字段不同,取字段并集,查询时需要加上过滤器。
这个应该像 json 那样,允许每行的结构不一样,而不总是并集。
不过对于大结果集都不好弄,可以先只对小结果集提供