hbase-importtsv-如何不导入空字段

h9a6wy2h  于 2021-06-09  发布在  Hbase
关注(0)|答案(2)|浏览(351)

我使用importtsv在hbase中导入数据。
在我的tsv文件中,有些字段是空的。如何才能不在hbase中导入它们?
例如,我在hbase中有一个名为test的表。我的tsv文件test.tsv如下所示:

1   a   b   c   d
2   q       f   s

当我这样做时:

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv  -Dimporttsv.columns=HBASE_ROW_KEY,I:c1,I:c2,I:c3,I:c4 Test test.tsv

我有这些结果:

1  column=I:c1, timestamp=1400855636910, value=a
 1  column=I:c2, timestamp=1400855636910, value=b
 1  column=I:c3, timestamp=1400855636910, value=c
 1  column=I:c4, timestamp=1400855636910, value=d
 2  column=I:c1, timestamp=1400855636910, value=q
 2  column=I:c2, timestamp=1400855636910, value=
 2  column=I:c3, timestamp=1400855636910, value=f
 2  column=I:c4, timestamp=1400855636910, value=s

即使我的tsv文件的第2行中的第二个字段为空,也会在hbase上创建一条记录。我怎样才能避免呢?

5jvtdoz2

5jvtdoz21#

add-dimporttsv.skip.empty.columns=真

ffscu2ro

ffscu2ro2#

我认为您需要编写一个自定义mapreduce作业:https://github.com/jrkinley/hbase-bulk-import-example/blob/master/src/main/java/com/cloudera/examples/hbase/bulkimport/hbasekvmapper.java

相关问题