首页 文章

在Spark中对大型数据框架进行高效过滤

提问于
浏览
0

我有一个有5亿行的Cassandra表 . 我想基于一个字段进行过滤,该字段是使用spark的Cassandra中的分区键 .

你能否根据列表键建议最好的/有效的方法来过滤Spark / Spark SQL,这也很大 .

基本上我只需要Cassandra表中存在于键列表中的那些行 .

我们正在使用DSE及其功能 . 我使用的方法大约花了大约一个小时 .

1 回答

  • 1

    你检查过 repartitionByCassandraReplicajoinWithCassandraTable 吗?

    https://github.com/datastax/spark-cassandra-connector/blob/75719dfe0e175b3e0bb1c06127ad4e6930c73ece/doc/2_loading.md#performing-efficient-joins-with-cassandra-tables-since-12

    joinWithCassandraTable利用java驱动器为源RDD所需的每个分区执行单个查询,因此不会请求或序列化不需要的数据 . 这意味着可以在不进行全表扫描的情况下执行任何RDD和Cassandra表之间的连接 . 当在两个共享相同分区键的Cassandra表之间执行时,这不需要在机器之间移动数据 . 在所有情况下,此方法将使用源RDD的分区和放置数据位置 . 方法repartitionByCassandraReplica可用于重定位RDD中的数据以匹配给定表和键空间的复制策略 . 该方法将查找给定RDD中的分区密钥信息,然后使用这些值来确定群集中的哪些节点将负责该数据 .

相关问题