\ x0D \ x0A字符附加在hbase表数据

时间:2016-10-11 16:51:28

标签: mapreduce hbase hadoop2

我正在使用三列的组合在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之后附加。

1 个答案:

答案 0 :(得分:0)

很明显,在strOrgId中,根据数据样本,在开始处有新行字符(\ r \ n,其toBytes()值为\ x0D \ x0A)。因此,您需要单独修剪包含新行的所有字符串,然后连接或需要用空白替换所有新行字符。下面是根据数据样本仅strOrgId的修剪代码。

String strKey = strFileName + "|" + strOrgId.trim() + "|" + strLineItemId;