2014-07-10 5 views
0

HBase에 위치 (위도, 경도) 값을 저장하려고합니다. 키와 값 쌍의 HashMap에서 새로운 값을 가질 때마다 열을 추가하기로 결정했습니다. 내 HashMap에이처럼 다음HBase - 열 추가시 중복 값

{위도 : 경도 43.7719802 : -79.5008048} :

HTable table = new HTable(hBaseConfig, TableName);  
for (Map.Entry<String, String> entry : Columns.entrySet()) { 
        Append a = new Append(rowKey); 
        a.add(Bytes.toBytes("a"), Bytes.toBytes(entry.getKey()), Bytes.toBytes(entry.getValue())); 
        table.append(a); 
    } 

그러나 여기(해시 맵의 샘플 JSON 표현)

그리고 내 코드입니다 값을 검색하려면 중복 저장됩니다. 나는 다음과 같이 각 값에 대해 한 셀에 여러 번 붙어 있다는 뜻입니다. -79.5008048-79.5008048-79.5008048

코드에 HBase 0.94.15-cdh4.7.0 라이브러리를 사용하고 있습니다.

누구든지이 문제를 해결하기위한 단서를 알고 있습니까?

답변

1

append 메서드를 사용하고 있습니다. 사용자가 값을 입력했기 때문에 값이 누적됩니다.

대신 덮어 쓰려면 put을 시도하십시오.

+0

답변 해 주셔서 감사합니다. 열이 있으면 Append가 내용을 누적하는 것 같습니다. 이 문제에 대해 각 열을 추가하기 전에 "get"을했습니다. 그러나 "풋"을 어떻게 사용할 수 있습니까? 나는 그 행의 어떤 것도 덮어 쓰고 싶지 않습니다. 난 그냥 그것에 무리를 추가하고 싶습니다. –

+0

append와 마찬가지로 put은 행의 개별 셀에서 작동 할 수 있습니다. 하나의 셀을 연속으로 두는 것은 행의 다른 셀에는 영향을주지 않습니다. – phs

+0

고마워요! 그것은 매력처럼 작동했습니다. –