使用hbase中的括号

时间:2015-10-28 17:16:05

标签: mysql hadoop hbase

我有tsv格式的数据,我想将其插入到hbase中,问题是每个字段都包含在"'""" (单引号)。

如何在导入命令中提供它:

  

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv   -Dimporttsv.bulk.output = output1 -Dimporttsv.columns = HBASE_ROW_KEY,data:employee_id,data:employee_name,data:designation,data:telephone_number,data:artist_mbid,   employees / emp

我发现hbase提供的选项是: 在 https://hbase.apache.org/book.html

importtsv
Other options that may be specified with -D include:
  -Dimporttsv.skip.bad.lines=false - fail if encountering an invalid line
  '-Dimporttsv.separator=|' - eg separate on pipes instead of tabs
  -Dimporttsv.timestamp=currentTimeAsLong - use the specified timestamp for the import
  -Dimporttsv.mapper.class=my.Mapper - A user-defined Mapper to use instead of org.apache.hadoop.hbase.mapreduce.TsvImporterMapper
  

我正在搜索类似mysql的命令:LOAD DATA   INFILE'输出' INTO TABLE员工FIELDS TERMINATED BY' \ t'   选择性地包含在'"'由' \ n'

终止的线路

1 个答案:

答案 0 :(得分:1)

我假设您的数据如下

'值1' '值2' '值3'

因此我没有使用tab作为分隔符,而是使用('')进行了测试。单引号,选项卡,单引号使用-Dimporttsv.separator。但这不起作用,因为ImportTsv将接受单字节长度的分隔符。

所以看起来,根据文档,您需要使用类似于ImportTsv的-Dimporttsv.mapper.class实现自己的映射器,并根据您的需要进行调整。有关ImportTsv的基本概念,请参阅here

毕竟,你正在运行map reduce,所以你不会失去延迟