首页 文章

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

提问于
浏览
0

我正在使用Apache Spark 2.0,Apache Cassandra 3.7和Apache Spark Java Connector for Cassandra 2.11(2.0.0-M3)

我想根据键列值从Cassandra中的表中删除几行 . 如何使用数据集并使用Apache Spark Java Connector for Cassandra?我在我的代码中使用SparkSession . 请建议 . 如果还有其他方法可以做到这一点,请告诉我 . 我想用Java做 .

谢谢 .

1 回答

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

相关问题