2017-07-31 38 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中導入具有特定值的列。