Hbase importtsv.separator指定非显示字符的办法

最近需求用importtsv和completebulkload来从文件导入Hbase数据,但是遇到了一个问题就是importtsv的分隔符只支持单个字符,如果想指定类似于“\t”这样的转义字符是不可能的,当然,TSV默认的分隔符就是TAB,所以这中情况就直接不指定分隔符就可以了。
但如果我想指定其他的特殊字符做分隔符要怎么办呢?

网上有个人提供了一个办法,就是在调用importtsv的main方法之前,通过conf.set的办法把分隔符指定到配置文件中。
但是因为是一些非显示的控制字符,实际上好像也没有传递进去,执行的时候还是用的默认分隔符(TAB),不知道是不是我自己没有测试好,总之我这边的结果就是不行的。大家有兴趣可以去参考一下。
http://stackoverflow.com/questions/19380629/issue-while-inserting-data-in-hbase-using-importtsv

通过反复的实验,终于发现可以将这里字符写在脚本里,直接执行脚本的方式可以指定成功。大概是这样个样子的
指定“头标开始”,“垂直制表符”,“转意”


具体的做发也参考了上面帖子里的内容,即先通过ASCII码指定的方式生成这个特殊的字符,然后把这个字符copy到EditPlus里,编辑成脚本直接执行。

脚本的内容不能直接copy到命令行执行,因为特殊的字符在copy的时候会转义。


付:ASCII码的对照关系如下。Hbase importtsv.separator指定非显示字符的办法_第1张图片

你可能感兴趣的:(其他)