0
私はHbaseテーブルにアクセスするためにhappybaseを使用しようとしています。列ファミリがバイト文字列として返されるため、happybaseを使用するKeyError
私はhappybase githubリポジトリからpython3ブランチを使用しています。
は、ここに私のテストコードです:私はこれを実行すると、列ファミリは、バイト文字列として返されるため
import happybase
from settings import HBASE_THRIFT_SERVER
connection = happybase.Connection(HBASE_THRIFT_SERVER)
print(connection.tables())
table = connection.table('people')
def get_audience(audience_qual,start,end):
row = table.row(audience_qual)
print(row)
return row['data:record']
def get_all_audience():
for key, data in table.scan():
print(key, data)
def put_people_row(row_key, people):
table.put(row_key, {'data:record': people})
if __name__ == '__main__':
get_all_audience()
print(get_audience('daily201605180000004', 0, 0))
私は行のキーエラーになっています。
2016-05-18 21:04:10,843 DS-Client-Dashboard INFO Settings Loaded
[b'ambarismoketest', b'people', b'tsdb', b'tsdb-meta', b'tsdb-tree', b'tsdb-uid']
b'daily201604030000001' {b'data:': b'{"clientid":1, "customerid":23499382}'}
b'daily201605180000002' {b'data:record': b'{"clientid": 2, "customerid": 2383020475}'}
b'daily201605180000003' {b'data:record': b'{"clientid": 2, "customerid": 2383020475}'}
b'daily201605180000004' {b'data:record': b'{"clientid": 2, "customerid": 2383020475}'}
{b'data:record': b'{"clientid": 2, "customerid": 2383020475}'}
Traceback (most recent call last):
File "/home/user100/ds_one_api/app/V1/hbase_operations.py", line 25, in <module>
print(get_audience('daily201605180000004', 0, 0))
File "/home/user100/ds_one_api/app/V1/hbase_operations.py", line 12, in get_audience
return row['data:record']
KeyError: 'data:record'
Process finished with exit code 1
ハッピーベースのドキュメントでは、列ファミリを動作させるための変換が表示されません。しかし、HBaseはハッファーベースが処理できないバイト文字列としてデータを格納することに言及しています。
キーエラーのない行から列ファミリを返すにはどうすればよいですか?