【问题标题】:How do I delete filtered rows in BigTable GCP如何删除 BigTable GCP 中的过滤行
【发布时间】:2020-01-14 18:24:42
【问题描述】:

我试图删除 BigTable 中过滤的行。

我有一个表格,其单元格中有一个空值,我想从表格中删除该行, 我写了一个过滤器来选择相关的行,但是当我尝试删除这些行时,我得到了一个错误。 enter code hereAttributeError: 'PartialRowData' object has no attribute 'delete'

我想知道我应该如何过滤基于过滤器的相关行并删除它们。

我的代码是用 Python 编写的

col1_filter = row_filters.ColumnQualifierRegexFilter(b'customerId')
label1_filter = row_filters.ValueRegexFilter('')
chain1 = row_filters.RowFilterChain(filters=[col1_filter, label1_filter])

partial_rows = table.read_rows(filter_=chain1)

for row in partial_rows:
    row.delete()

【问题讨论】:

    标签: python google-cloud-platform bigtable google-cloud-bigtable


    【解决方案1】:

    您收到该错误是因为PartialRowsData 没有删除功能。您必须从中创建一行(例如DirectRow),然后才能在其上调用 delete 函数或 delete_cell 函数。

    【讨论】:

    • 谢谢,你的意思是创建基于row_key的行:row = table.row(data.row_key) row.delete() row.commit()
    • 是的,这将删除整行。如果您只想删除 customerId 单元格,可以使用带有列族和限定符参数的 delete_cell() 函数。
    • 谢谢,它正在工作。我添加了另一个关于阅读和修改的问题,如果您有示例stackoverflow.com/q/57914718/5082288,我将不胜感激
    猜你喜欢
    • 2020-04-03
    • 2021-05-19
    • 1970-01-01
    • 2019-09-27
    • 2013-06-16
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多