使用密钥列使用用于Cassandra的Apache Spark Java连接器从Cassandra DB中删除行

时间:2017-01-04 09:56:18

标签: java apache-spark cassandra spark-cassandra-connector

我正在使用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做。

谢谢。

1 个答案:

答案 0 :(得分:2)

用于删除Cassandra记录的功能deleteFromCassandra()将在新的Cassandra Connector版本中出现。请查看SPARKC-349SPARKC-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();
    });