我正在使用三列的组合在HBase中创建行键。 它已成功插入,我也可以在日志中看到我的数据。 日志中的数据是正确的,没有任何垃圾字符。 但是当我扫描我的表时,我可以看到\ x0D \ x0A被附加在行键
中 123|\x0D\x0A4295856150|404 column=cf:SegmentSequence, timestamp=1476249090712, value=2
123|\x0D\x0A4295856150|404 column=cf:SegmentSequence.segmentId, timestamp=1476249090712, value=15
123|\x0D\x0A4295856150|405 column=cf:FFAction, timestamp=1476249090712, value=I
也。 这就是我形成行键的方式。
String strKey = strFileName + "|" + strOrgId + "|" + strLineItemId;
Put put = new Put(Bytes.toBytes(strKey));
此字符也会在strOrgId之前和strFileName之后附加。
答案 0 :(得分:0)
很明显,在strOrgId中,根据数据样本,在开始处有新行字符(\ r \ n,其toBytes()值为\ x0D \ x0A)。因此,您需要单独修剪包含新行的所有字符串,然后连接或需要用空白替换所有新行字符。下面是根据数据样本仅strOrgId的修剪代码。
String strKey = strFileName + "|" + strOrgId.trim() + "|" + strLineItemId;