您好,Hive大数据导入Hbase,二进制数据类型如何导入

发布于 2021-12-02 04:41:57 字数 582 浏览 791 评论 2

@王二铁 你好,想跟你请教个问题:

现在使用Hive生成HFile的方式导入Hbase,

数据类型为Int,Long等数据无法转成相应的Bytes存入Hbase,存到Hbase的数据为String

请问有什么方式可以导入,数据量有3000w左右使用逐条导入效率太慢。

生成HFile的语句如下。

create table child_hfile_tmp1(CHIL_CODE bigint, CHIL_NAME string,CHIL_BIRTHDAY bigint) stored as INPUTFORMAT 'org.apache.hadoop.mapred.TextInputForma' OUTPUTFORMAT 'org.apache.hadoop.hive.hbase.HiveHFileOutputFormat'  TBLPROPERTIES ('hfile.family.path' = '/tmp/hbase_table_hfile/info');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离去的眼神 2021-12-07 22:56:12

"数据类型为Int,Long等数据无法转成相应的Bytes存入Hbase,存到Hbase的数据为String" 这句话不赞同

 

KeyValue kv = new KeyValue(row, cf.getBytes(),  Bytes.toBytes(columnName), timestamp, Bytes.toBytes(columnValue));  

这样就可以了,columnValue是什么类型,写入就是什么类型的

效果:

column=f:type, timestamp=1508801818, value=2

千笙结 2021-12-04 06:52:56

一个简便方法,把数据装入多个List里面,再把lsit转成json字符串,存入;取的时候把字符串转化成List对象反解析出来,hbase的威力要把rowKey设计好才能发挥,好好想想怎么设计rowKey

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文