【问题标题】:Spark on Cassandra : is there a way to remove data by partition key?Cassandra 上的 Spark:有没有办法通过分区键删除数据?
【发布时间】:2021-12-12 05:37:24
【问题描述】:

spark Cassandra 连接器具有RDD.deleteFromCassandra(keyspaceName, tableName) 方法。

RDD 中的值被解释为主键约束。

我有一张这样的桌子:

CREATE TABLE table (a int, b int, c int, PRIMARY KEY (a,b));

如您所见,apartition keybclustering key

我需要一个spark app,它可以通过partition_key 而不是primary key 有效删除。

确实,我的目标是始终按其partition keys 删除整个分区,而不是为每个primary key 创建一个thombstones。

如何用火花连接器做到这一点?

谢谢

【问题讨论】:

    标签: apache-spark cassandra datastax datastax-enterprise spark-cassandra-connector


    【解决方案1】:

    是的,如果您将keyColumns 参数指定给.deleteFromCassandra 函数(docs),则可以这样做。例如,如果您有由两列 part1part2 组成的复合分区键:

    rdd.deleteFromCassandra("keyspace", "table", 
      keyColumns = SomeColumns("part1", "part2"))
    

    此方法仅适用于 RDD,如果您使用 DataFrames,则只需执行df.rdd。此外,在某些版本的连接器中,您可能需要将选择限制为仅对列进行分区 - 请参阅此 answer 中的讨论。

    【讨论】:

      猜你喜欢
      • 2023-01-11
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 2017-08-17
      • 2023-03-21
      相关资源
      最近更新 更多