如何更新HBase中的现有列值

Mah*_*yed 1 java hbase

我有以下插入声明.

Put put = new Put(UserId.getBytes(charSet));
put.add("Actor".getBytes(charSet), "Verified".getBytes(charSet),Bytes.toBytes(verified));       
put.add("Actor".getBytes(charSet), "UtcOffset".getBytes(charSet),Bytes.toBytes(utcOffset));
put.add("Actor".getBytes(charSet), "PreferredUsername".getBytes(charSet),preferredUserName.getBytes(charSet));  
table.put(put);
Run Code Online (Sandbox Code Playgroud)

现在我想用新的preferredUsername更新插入值preferredUserName.请帮我

小智 5

在HBase中,您可以分别更新不同列限定符中的值,并且一个列限定符中的旧值将被新值"遮蔽".严格来说,新值形成一个新版本,默认情况下,如果未在Get/Scan中指定时间戳,则始终获取最新版本.

因此,只需将新的preferredUsername"置"为"PreferredUsername"列限定符.

Put put = new Put(UserId.getBytes(charSet));
put.add("Actor".getBytes(charSet), "PreferredUsername".getBytes(charSet),newPreferredUserName.getBytes(charSet));  
table.put(put);
Run Code Online (Sandbox Code Playgroud)

这将"shadow"插入preferredUserName,其中newPreferredUserName为"UserId"行.