\x0D\x0A 字符附加到 hbase table 数据中
\x0D\x0A character is appended in hbase table data
我正在使用三列的组合在 HBase 中创建行键。
它已成功插入,我也可以在日志中看到我的数据。
日志中的数据是正确的,没有任何垃圾字符。
但是当我扫描 table 时,我可以看到 \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 之后。
很明显,在 strOrgId 中,根据数据样本,开头有换行符(\r\n,其 toBytes() 值为 \x0D\x0A)。因此,您需要 trim 单独包含换行符的所有字符串,然后连接或需要将所有换行符替换为空白。根据数据示例,下面是 trim 仅针对 strOrgId 的代码。
String strKey = strFileName + "|" + strOrgId.trim() + "|" + strLineItemId;
我正在使用三列的组合在 HBase 中创建行键。 它已成功插入,我也可以在日志中看到我的数据。 日志中的数据是正确的,没有任何垃圾字符。 但是当我扫描 table 时,我可以看到 \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 之后。
很明显,在 strOrgId 中,根据数据样本,开头有换行符(\r\n,其 toBytes() 值为 \x0D\x0A)。因此,您需要 trim 单独包含换行符的所有字符串,然后连接或需要将所有换行符替换为空白。根据数据示例,下面是 trim 仅针对 strOrgId 的代码。
String strKey = strFileName + "|" + strOrgId.trim() + "|" + strLineItemId;