我正在尝试从hbase访问通过phoenix创建的表。我可以读取字符串值,但不能读取十进制值。例如,decimal\u place\u cnt的实际值为6,但从hbase shell显示value=\xc1\x07
我怎样才能把它推回6呢?
get 'ODS.CCY',"\x00ANG"
COLUMN CELL
0:CCY_CTRY_CD timestamp=1470245652652, value=NL
0:CCY_DESC timestamp=1470245652652, value=NETHERLANDS ANTILLIAN GUILDER
0:CCY_RVSE_IND timestamp=1470245652652, value=N
0:DECIMAL_PLACE_CNT timestamp=1470245652652, value=\xC1\x07
1条答案
按热度按时间jjjwad0x1#
如本文所述,当定义类型为的列时
DECIMAL
,phoenix将值Map到java.math.BigDecimal
.将值写入hbase时,phoenix将序列化
java.math.BigDecimal
使用org.apache.phoenix.schema.types.PDataType.toBytes
. 此方法的源代码在这里,通过搜索可以找到准确的位置static int toBytes
.