我正在使用Apache Spark 2.0,Apache Cassandra 3.7 和用于Cassandra 2.11(2.0.0-M3)的Apache Spark Java Connector
我想根据键列值从Cassandra中的表中删除几行。如何使用数据集并使用Apache Spark Java Connector for Cassandra?我在我的代码中使用SparkSession。请建议。如果还有其他方法可以做到这一点,请告诉我。我想用Java做。
谢谢。
答案 0 :(得分:2)
用于删除Cassandra记录的功能deleteFromCassandra()
将在新的Cassandra Connector版本中出现。请查看SPARKC-349和SPARKC-392了解详情。
要使用Cassandra Connector从Cassandra删除行,您可以执行以下操作。比方说,我的表中有id UUID PRIMARY KEY, username TEXT
这样的列。现在我要删除username等于" Mat"的所有行。为此,从Cassandra Connector获取Session并执行删除查询。
dataset.where(dataset.col("username").equalTo("Mat")).foreachPartition(partition -> {
Session session = connector.openSession();
while (partition.hasNext()) {
Row row = partition.next();
String id = (String) row.get(0);//UUID is at index 0
String delete = "DELETE FROM mykeyspace.mytable where id=" + id + ";";
session.execute(delete);
}
session.close();
});