我是<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet"/>
<table id="register-data"class="display tablesorter" role="grid" aria-describedby="example_info" style="width: 100%;" cellspacing="0">
<thead>
<tr>
<th>ReleaseID</th>
<th>ReleaseName</th>
<th>DivisionID</th>
<th>StatusID</th>
<th>Edit</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
的新用户,我有一个查询,例如如何从hbase
到hbase
单独提取列名及其对应值。
我尝试过像
这样的可能方案excel/csv
有人可以给我一个解决方案
所以显示示例
hbase
如果这是我们的数据,那么我们的最终结果应该是 ABC qwer
cf:ABC timestamp=1234, value=qwer
cf:DEF timestamp=5678, value=9874
cf:GEH timestamp=10254, value=11223344
答案 0 :(得分:1)
如果要将HBase数据导出到csv,其中一种方法是使用EXTERNAL TABLE
创建与HBase表映射的Hive HBaseStorageHandler
。
首先,您必须确保Hive的类路径上有HBase依赖项。
存储句柄hive-hbase-handler-x.y.z.jar
,必须在Hive客户端辅助路径上以及HBase,Guava和ZooKeeper jar中可用。
假设您在HBase中有abc
表,您必须使用hive表进行映射。
您可以授予Hive对现有HBase表的访问权限,使用CREATE EXTERNAL TABLE
:
CREATE EXTERNAL TABLE hive_table(rowkey int, ABC string,DEF string,GEH string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:ABC,cf1:DEF,cf1:GEH")
TBLPROPERTIES("hbase.table.name" = "abc");
使用HBase shell验证数据
>scan "abc"
再次查询回到配置单元
hive> select * from hive_table limit 10;
现在您在hive外部表中有数据,因此可以使用,
分隔符将其导出到csv文件。
答案 1 :(得分:0)
将hbase shell
与get或scan一起使用,并将输出通过管道输出到sed
命令以提取colunn名称和值。
但警告,HBase旨在存储数百万或可能数十亿行,因此将数据提取为csv格式不是一个正确的用例,除非您只需要检查rowkey XXX中存储的值。