[英]Decoding BInary Data from BigTable
我想使用 CLI 工具cbt
或 Python API 來解碼來自 Google Cloud BigTable 的響應。 我將此命令與cbt
一起使用僅從表中讀取一行
cbt read <table-name> count=1
這是返回不可讀的二進制數據。
此查詢使用 Python API
building_table_row = building_table.scan(limit= 1)
正在返回類似的響應:
p:pattern @ 2021/08/20-20:58:10.519000
NPY\x00p\x14j\x11streak-accuraciesn\x04d\x01d\x01\x00\x00j\rmin-drawdownsn\x047=\xbff\xaf$\xf1\xf3i\x0077j\ngain-ratesn\x04=?\x8f\xad\xc5\xf3\x05\xde\x00=?\x8f\xad\xc5\xf3\x05\xde\x0077j\x15extended-sharpe-ratio=?\xf6%\xd1\xefh\xa5\xf7j\rmax-drawdownsn\x047=?\x9e\x0f\x8f\xe7n\xa8@77j\adates-rrq+\x00\x00\x01j\xfb\xbc\x90\x00+\x00\x00\x01j\xfb\xbc\x90\x00q+\x00\x00\x01rSm\xbc\x00+\x00\x00\x01rSm\xbc\x00q+\x00\x00\x01y\xab\x1e\xe8\x00+\x00\x00\x01y\xab\x1e\xe8\x00j\againsesn\x04r=?\x91\u007f\x0e\xd9\xea\x00@=?Q\x1fs\x85\xd80\x00=?\x9c\xf3\xa2\xdaAI\xc0r=?\x91\u007f\x0e\xd9\xea\x00@=?Q\x1fs\x85\xd80\x00=?\x9c\xf3\xa2\xdaAI\xc0r777r777j\x06symboli\bSPGSAL.Xj\x12extended-gain-rate=?\x8f\xad\xc5\xf3\x05\xde\x00j\fsharpe-ratio=?\xf6%\xd1\xefh\xa5\xf7j\x04partqd\x05d\x1bj\x0fpartition-countd\x03j\x04year*\x00\x00\a\xe5j\x0faverage-move-up=?\x8f\xad\xc5\xf3\x05\xde\x00j\x18extended-streak-accuracyd\x01j\astd-dev7j\x11average-move-down\x00j\vsd-of-gains=?\x86⬷r\xd5fj\x06rating7j\rstreak-lengthd\x01"
我嘗試使用row.decode('utf-8')
解碼, row.decode('utf-8')
不起作用。
如何解碼來自 BigTable 的響應?
for (Row row : rows) { // here you have rows from bigtable
finalList.addAll(row.getCells(COLUMN_FAMILY, COLUMN_QUALIFIER).stream()
.map(rowCell -> GsonUtility.JAVA_BASED_GSON.fromJson(rowCell.getValue().toStringUtf8(), MyObject.class)) // converting binery cell data to MyObject
.collect(Collectors.toList())); // collect objects as list
}
// here is util for converting to Object
ublic <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
Object object = this.fromJson((String)json, (Type)classOfT);
return Primitives.wrap(classOfT).cast(object);
}
祝你好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.