我正在使用 Apache Spark 2.0、Apache Cassandra 3.7 和 Apache Spark Java Connector for Cassandra 2.11 (2.0.0-M3)
我想根据关键列值从 Cassandra 的表中删除几行。如何使用 Dataset 和 Apache Spark Java Connector for Cassandra 来实现这一点?我在代码中使用 SparkSession。请建议。如果还有其他方法可以做到这一点,请告诉我。我想用 Java 来做。
谢谢。
最佳答案
用于删除 Cassandra 记录的deleteFromCassandra()
功能将在新的 Cassandra 连接器版本中推出。请查看SPARKC-349和 SPARKC-392了解更多详情。
要使用 Cassandra 连接器从 Cassandra 删除行,您可以执行如下操作。举例来说,我的表中有诸如 id UUID PRIMARY KEY, username TEXT
之类的列。现在我想删除用户名等于“Mat”的所有行。为此,从 Cassandra 连接器获取 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();
});
关于java - 使用适用于 Cassandra 的 Apache Spark Java 连接器(使用键列)从 Cassandra DB 中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41460892/