我试图找出一种方法,当表中的特定行与Accumulo中的其他几行具有相同的行ID时,从表中删除该行。这是我的表格设置方式:

m0 : property : name -> erp
m0 : property : age -> 23
m0 : purchase : food -> 5.00
m0 : purchase : gas -> 24.00
m0 : purchase : beer -> 15.00


假设我想从表格中删除汽油。我知道我可以使用connection.tableOperations().deleteRows(table, start, stop),但是如果我将m0 - 1m0的行ID传递给函数,它将删除所有这些条目。我可以删除colFam =某些东西和colQual =某些东西吗?我没有在API中看到任何支持此功能的信息,但弗兰肯斯坦代码也很酷:)

最佳答案

对的,这是可能的。我一直在思考SQL中仍然想到的行和列。为了删除一列(这是我在想的)而不是一行。您只需编写另一个变异。例如:

Text rowId = new Text("m0");
Text colFam = new Text("purchase");
Text colQual = new Text("gas");
Mutation mut = new Mutation(rowId);
mut.putDelete(colFam, colQual);

writer = connection.createBatchWriter(tableName, new BatchWriter());
try{
    writer.addMutation(mut);
}catch{
   ...
}


完美的作品:)

08-26 00:45