Spark on Cassandra:有没有办法通过分区键删除数据?
Spark on Cassandra : is there a way to remove data by partition key?
Spark Cassandra 连接器具有 RDD.deleteFromCassandra(keyspaceName, tableName)
方法。
The values in the RDD are interpreted as Primary Key constraints.
我有一个这样的 table :
CREATE TABLE table (a int, b int, c int, PRIMARY KEY (a,b));
如您所见,a
是 partition key
,b
是 clustering key
。
我需要一个 spark app
可以通过 partition_key
而不是 primary key
有效地删除。
的确,我的目标是始终按 partition keys
删除整个分区,而不是为每个 primary key
.
创建 thombstones
如何使用 spark 连接器做到这一点?
谢谢
是的,如果您将 keyColumns
参数指定给 .deleteFromCassandra
函数 (docs),则可以执行此操作。例如,如果您的复合分区键包含两列 part1
& part2
:
rdd.deleteFromCassandra("keyspace", "table",
keyColumns = SomeColumns("part1", "part2"))
此方法只适用于RDD,如果你使用DataFrames,那么你只需要做df.rdd
。此外,在某些版本的连接器中,您可能需要将选择限制为仅对列进行分区 - 请参阅此 .
中的讨论
Spark Cassandra 连接器具有 RDD.deleteFromCassandra(keyspaceName, tableName)
方法。
The values in the RDD are interpreted as Primary Key constraints.
我有一个这样的 table :
CREATE TABLE table (a int, b int, c int, PRIMARY KEY (a,b));
如您所见,a
是 partition key
,b
是 clustering key
。
我需要一个 spark app
可以通过 partition_key
而不是 primary key
有效地删除。
的确,我的目标是始终按 partition keys
删除整个分区,而不是为每个 primary key
.
如何使用 spark 连接器做到这一点?
谢谢
是的,如果您将 keyColumns
参数指定给 .deleteFromCassandra
函数 (docs),则可以执行此操作。例如,如果您的复合分区键包含两列 part1
& part2
:
rdd.deleteFromCassandra("keyspace", "table",
keyColumns = SomeColumns("part1", "part2"))
此方法只适用于RDD,如果你使用DataFrames,那么你只需要做df.rdd
。此外,在某些版本的连接器中,您可能需要将选择限制为仅对列进行分区 - 请参阅此