使用ApacheSparkJava连接器从cassandra数据库中删除行

5us2dqdw  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(260)

我正在使用ApacheSark2.0、ApacheCassandra3.7和ApacheSarkJava连接器for Cassandra2.11(2.0.0-m3)
我想根据键列值从cassandra中的表中删除几行。如何使用dataset和ApacheSparkJavaConnectorforCassandra实现这一点?我正在代码中使用sparksession。请建议。如果有任何其他方法可以做到这一点,那么让我知道。我想用java来做。
谢谢您。

bfrts1fy

bfrts1fy1#

功能 deleteFromCassandra() 为了删除Cassandra记录是在新的Cassandra连接器释放来。请查看sparkc-349和sparkc-392了解更多详细信息。
要使用cassandra连接器从cassandra中删除行,可以执行以下操作。例如,我有如下列 id UUID PRIMARY KEY, username TEXT 在我的table上。现在我想删除username等于“mat”的所有行。为此,从cassandra连接器获取会话并执行delete查询。

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();
    });

相关问题