首页 > 解决方案 > 当我们在 where 中使用过滤器时,spark 如何读取数据

问题描述

我正在从一个巨大的表(900 GB)中读取一个密钥。它只是一个条件,但火花已经启动了许多没有大量任务的工作。

我正在使用 11 节点集群(每个节点 128 GB 内存和 16 个内核)

我知道我们可能需要更多的任务,但是为什么有这么多的工作,为什么不能在一个阶段处理......?

有人可以解释一下当我们使用 where 条件时内部会发生什么..

感谢您的回复。请检查这张图片

标签: apache-sparkapache-spark-sql

解决方案


Spark 用于批量处理,而不是单个键查找,因为您的图像显示在带有索引的 ORACLE 数据库中。当然,对于多行的 JOIN,这些查找更好。

Spark 不知道您在做什么(语义上),因此它遵循其分布式模型和并行处理 - 意味着许多任务 - 用于许多分区。

该图像不适用于 Spark。


推荐阅读