当前位置: 首页 > 知识库问答 >
问题:

在运行SQL Query之前,DSE的Spark是否将所有数据加载到RDD中?

娄利
2023-03-14

运行DSE 4.7

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

我有一个Cassandra表,里面有4,000,000条记录。

在Spark上运行以下Spark SQL“从电子邮件= ?或移动 = ?”

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

共有1个答案

应涵容
2023-03-14

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

这取决于您的数据库模式。如果您的查询明确将扫描限制在单个C*分区(而我们的中email=?或移动 = ? 绝对没有),Spark将仅加载部分数据。

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

每个spark节点会有1,000,000条记录加载到内存中吗?

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

 类似资料:
  • 问题内容: 我有一个.jsp页面,其中有一个GUI表,该表显示来自Oracle数据库的记录。该表允许典型的分页行为,例如“ FIRST”,“ NEXT”,“ PREVIOUS”和“ LAST”。记录是从Java ResultSet对象获得的,该对象是从执行SQL语句返回的。 这个ResultSet可能很大,所以我的问题是: 如果我的ResultSet包含一百万条记录,但是我的表仅显示ResultS

  • 问题内容: 我遇到了一个问题,其中发生了多个异步请求,这些请求从Facebook API和Firebase数据库获取图像和信息。我想执行所有异步请求,然后将从Facebook API / Firebase数据库获取的所有数据存储到一个可以快速加载的完整对象中。我为每个异步请求设置了完成处理程序,我认为这会迫使程序“等待”直到请求完成,然后继续执行程序,但这似乎对我不起作用。以下是我的尝试: 我知道

  • 2)在控制器中执行groupby,然后在map中运行由外部库提供的非并行kmeans。 请告诉我还有别的办法,我宁愿尽可能的拥有一切。

  • 我仍在努力理解最近推出的Spark数据集的全部功能。 是否有关于何时使用RDD和何时使用数据集的最佳实践? Databricks在他们的公告中解释说,通过使用数据集,可以实现运行时和内存的惊人减少。尽管如此,据称数据集的设计“与现有RDD API协同工作”。 这仅仅是对向下兼容性的引用,还是有人更愿意在数据集上使用RDD的场景?

  • RDD是以数组[数组[字符串]的格式创建的,具有以下值: 我想用模式创建一个数据帧: 接下来的步骤: 给出以下错误:

  • 我不确定这个术语是什么,但我需要为我的应用程序中的所有组件提供相同的数据。以下是我的应用程序的基本结构: 在之前。js 应用etup.js ViewMDLComp。js 那么,我如何在Angular中运行在我的组件之前编译的东西,并向它们提供它们需要的数据呢?