2017-07-31 24 views
0

row_key我有类似这样自动生成HBase的

11,xxx ,dav,300000,mumbai 
12,YYY ,IIT,800000,bang 

记录的日志文件,当我将其导入使用导入TSV即〜

ImportTsv -Dimporttsv.separator=, 
-Dimporttsv.columns="HBASE_ROW_KEY,id,name,school,sal,place" 
table_name <file_loc> 

结果HBASE:

hbase> scan table_name 
11      column=cf:id, timestamp=1501438942080, value=xxx 
11      column=cf:name, timestamp=1501438942080, value=dav 
11      column=cf:sal, timestamp=1501438942080, value=mumbai 
11      column=cf:school, timestamp=1501438942080,value=300000 
12      column=cf:id, timestamp=1501438942080, value= yyy 
12      column=cf:name, timestamp=1501438942080, value=IIT 

由于value的值现在是HBOW的row,列:id分配了错误的值xxx ..等等下一列,我怎么能(自动生成一个HBASE_ROW_KEY),以便我的列不被覆盖?我如何解决这个问题。

回答

0

截至目前,还没有规定根据列值创建复合行键。可能是您已经预先处理TSV文件并创建组合键,然后使用新创建的组合键作为rowKey将其加载到HBase。

检查JIRA提高了同一https://issues.apache.org/jira/plugins/servlet/mobile#issue/HBASE-5339

+0

在加载hbase之前预处理每个tsv文件.... ??任何其他解决方案在hbase中创建自动生成的行,以便将数据从外部文件导入到表中将直接加载到其各自的列中。 –

0

我不需要添加(列 - > ID)HBase的创建表的过程中,只有不应被宣布PRIMARY_KEY列应在外壳创建表给出。 现在导入tsv将在每个ROW_KEY中导入具有特定值的列。