使用Pyaccumu删除Accumulo中的行

2024-10-01 07:40:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用RowDeletingIterator删除行。我在运行Accumulo 1.5.0。这是我所拥有的

writer = conn.create_batch_writer("my_table")
mut = Mutation("1234")
mut.put(cf="", cq="", cv="", is_delete=True)
writer.add_mutation(mut)
writer.close()
for r in conn.scan("my_table", scanrange=Range(srow="1234", erow="1234"), iterators=[RowDeletingIterator()]):
    print(r)
conn.close()

我正在打印记录以验证扫描仪是否扫描了相应的记录。遗憾的是,它们似乎没有被删除。我很感激你的任何见解,因为皮亚库穆罗的医生不是最好的。在

我知道有一个bug(ACCUMULO-1800)需要在删除时使用时间戳,但是当我指定一个ts字段时,除了现有的记录之外,我只看到一个空白记录。在


Tags: closeputmycreatebatch记录tableconn
2条回答

pyacumulo中应该有一个delete_rows方法。在

def delete_rows(self, table, srow, erow):
    self.client.deleteRows(self.login, table, srow, erow)

你可以这样使用它:

^{pr2}$

我对pyacumulo不是很熟悉,但是我可以告诉您RowDeletingIterator不使用普通的删除条目。它只使用一个具有空列family、限定符和visibility的键和DEL iu ROW的值来指示应该删除整个行。我会尝试不设置is_delete=True,并给条目一个DEL_ROW的值,看看这是否符合您的要求。在

相关问题 更多 >