python-3.x - 如何在 python bigtable 中进行分页
问题描述
我试图在读取 TB 数据时在 bigtable 中使用 python 进行分页,但没有任何想法。能否请您帮忙,或者可以在bigtable中附上python分页的示例代码。
解决方案
您可以像这样扫描您的表,read_rows 将为您提供一个迭代器:
def read_prefix(project_id, instance_id, table_id):
client = bigtable.Client(project=project_id, admin=True)
instance = client.instance(instance_id)
table = instance.table(table_id)
prefix = "phone#"
end_key = prefix[:-1] + chr(ord(prefix[-1]) + 1)
row_set = RowSet()
row_set.add_row_range_from_keys(prefix.encode("utf-8"),
end_key.encode("utf-8"))
rows = table.read_rows(row_set=row_set)
for row in rows:
print_row(row)
read_rows 返回一个处理重试的PartialRowsData对象,因此如果您的操作需要一定数量的项目,您可以像这样在 for 循环中添加一个计数器,它应该具有与分页相同的效果:
count = 0
page_size = 10
for row in rows:
print_row(row)
count++
if count % page_size == 0:
# Do your action based on page size
还有更多例子展示
推荐阅读
- android - 在新的 Google billing Api 2.0 中确认购买后无法获取更新的购买对象
- python - 是否有标准的文档字符串格式来显示需要函数的参数的签名?
- sql - 如何在 SQL 查询中对数据进行非规范化
- r - r中绘图功能的主要项目中的“小于或等于”符号
- c++ - 如何在项目 2 中使用项目 1 中的函数?
- c# - 如何在统一C#中围绕播放器旋转相机
- java - 无法在 Spring Data JPA 单元测试中使用 findOne(example)
- macos - macOS 实时扫描/检测屏幕
- angular - 如何在 Angular 项目中包含 Firebase 管理员
- maven - Maven 父 POM vs BOM 依赖管理