Cassandra 在运行SQL查询之前,DSE中的Spark是否将所有数据都放到RDD中?

Cassandra 在运行SQL查询之前,DSE中的Spark是否将所有数据都放到RDD中?,cassandra,apache-spark,datastax,Cassandra,Apache Spark,Datastax,运行DSE 4.7 假设我有一个4节点的DSE Cassandra/Spark群集 我有一张卡桑德拉表,里面有4000000条记录 在Spark上运行以下Spark SQL“从表中选择*,其中email=?或mobile=?” Spark会将所有数据加载到RDD中,然后根据where子句进行过滤吗?每个spark节点是否有1000000条记录加载到内存中 spark会将所有数据加载到RDD中,然后根据where子句进行过滤吗 这取决于您的数据库模式。如果您的查询明确地将扫描限制为单个C*分区(而

运行DSE 4.7

假设我有一个4节点的DSE Cassandra/Spark群集

我有一张卡桑德拉表,里面有4000000条记录

在Spark上运行以下Spark SQL“从表中选择*,其中email=?或mobile=?”

Spark会将所有数据加载到RDD中,然后根据where子句进行过滤吗?每个spark节点是否有1000000条记录加载到内存中

spark会将所有数据加载到RDD中,然后根据where子句进行过滤吗

这取决于您的数据库模式。如果您的查询明确地将扫描限制为单个C*分区(而我们的
中的email=?或mobile=?
肯定不会),Spark将只加载部分数据

在您的情况下,它必须扫描所有数据

每个spark节点是否有1000000条记录加载到内存中


同样,这取决于数据集大小和工作节点上的RAM数量。Spark RDD并不总是完全加载到RAM中,在您的情况下,它可以被分成更小的部分(例如,100k行),加载到RAM中,根据您的查询进行过滤,然后逐个保存。

SQL?你是说CQL吗?火花SQL。我会更新我的问题。