我有一张拥有5亿行的Cassandra表。我想基于一个字段进行过滤,该字段是使用spark的Cassandra中的分区键。
你能否根据列表键建议最好的/有效的方法来过滤Spark / Spark SQL,这也很大。
基本上我只需要Cassandra表中存在于键列表中的那些行。
我们正在使用DSE及其功能。 我使用的方法大约花了大约一个小时。
答案 0 :(得分:1)
您是否选中了repartitionByCassandraReplica
和joinWithCassandraTable
?
joinWithCassandraTable
利用java驱动器执行单个驱动器 查询源RDD所需的每个分区,因此不需要 数据将被请求或序列化。这意味着任何之间的联接 可以在不执行完整表的情况下执行RDD和Cassandra表 扫描。在两个共享相同的Cassandra表之间执行时 分区键这不需要在机器之间移动数据。 在所有情况下,此方法将使用源RDD的分区和 数据位置的位置。方法
repartitionByCassandraReplica
可用于重定位数据 在RDD中匹配给定表的复制策略和 密钥空间。该方法将查找分区密钥信息 给定RDD然后使用这些值来确定中的哪些节点 群集将负责该数据。