spark-cassandra连接器中有没有一种方法可以实现side-side过滤,它相当于cql中的每个分区限制或本机cassandra java驱动程序中的perpartitionlimit?注意,这里是每个cassandra分区的limit,而不是每个spark分区(连接器中现有的limit函数支持)。Spark2.0.1,连接器-2.0.0-m3
khbbv19g1#
感谢russs最初的回答。我使用以下方法使其工作:首先,我们需要使用“每个分区限制”。其次,如果您有其他where子句,则需要将其与其中一个组合,如下所示:sc.cassandratable(…)。其中(“event_type=1 per partition limit 5”)而不是sc.cassandratable(…).where(“事件类型=1”).where(“每个分区限制5”)否则将在“每个分区限制”之前生成and关键字,这将导致错误。
ffvjumwh2#
spark cassandra连接器内置的limit api(从2.0.0-m3开始)只能限制c*令牌范围。如果您使用的是大于3.6的cassandra,则可以在 .where 应用程序编程接口。看到了吗https://issues.apache.org/jira/browse/cassandra-7017
.where
sc.cassandraTable(...).where("PER PARTITION LIMIT 10")
2条答案
按热度按时间khbbv19g1#
感谢russs最初的回答。我使用以下方法使其工作:
首先,我们需要使用“每个分区限制”。
其次,如果您有其他where子句,则需要将其与其中一个组合,如下所示:
sc.cassandratable(…)。其中(“event_type=1 per partition limit 5”)
而不是
sc.cassandratable(…).where(“事件类型=1”).where(“每个分区限制5”)
否则将在“每个分区限制”之前生成and关键字,这将导致错误。
ffvjumwh2#
spark cassandra连接器内置的limit api(从2.0.0-m3开始)只能限制c*令牌范围。
如果您使用的是大于3.6的cassandra,则可以在
.where
应用程序编程接口。看到了吗https://issues.apache.org/jira/browse/cassandra-7017