如何使用gcp python客户端解码bigtable数据?
我在努力 utf-8
按照建议,但没有成功。下面的示例仅显示布尔类型的问题,但其他类型会导致其他解码问题。
请注意,该表是使用spark 2.4和 "tableCoder":"PrimitiveType"
(gcp说明、hortonworks“shc”连接器和这些步骤)。
你知道吗?
表(从spark读取)
+------+-----+----+----+
| col0| col1|col2|col3|
+------+-----+----+----+
|row000| true| 0.0| 0|
|row001|false| 1.0| 1|
|row002| true| 2.0| 2|
|row003|false| 3.0| 3|
...
表(从python客户端读取)
for key, row in table.scan():
print('\t{}: {}'.format(key,row))
b'row000': {b'cf1:col1': b'\xff', b'cf2:col2': b'\x00\x00\x00\x00\x00\x00\x00\x00', b'cf3:col3': b'\x00\x00\x00\x00'}
b'row001': {b'cf1:col1': b'\x00', b'cf2:col2': b'?\xf0\x00\x00\x00\x00\x00\x00', b'cf3:col3': b'\x00\x00\x00\x01'}
b'row002': {b'cf1:col1': b'\xff', b'cf2:col2': b'@\x00\x00\x00\x00\x00\x00\x00', b'cf3:col3': b'\x00\x00\x00\x02'}
b'row003': {b'cf1:col1': b'\x00', b'cf2:col2': b'@\x08\x00\x00\x00\x00\x00\x00', b'cf3:col3': b'\x00\x00\x00\x03'}
...
尝试解码第一个值(来自python客户端)
key
> b'row000'
col_name = 'cf1:col1'
row[col_name.encode('utf-8')]
> b'\xff'
row[col_name.encode('utf-8')].decode('utf-8')
错误
> Traceback (most recent call last):
> File "<ipython-input-116-14960001f95a>", line 1, in <module>
row[col_name.encode('utf-8')].decode('utf-8')
> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
暂无答案!
目前还没有任何答案,快来回答吧!