我想了解 Spark 中的分区。我在 Windows 10 上以本地模式运行 spark。我的笔记本电脑有 2 个物理内核和 4 个逻辑内核。
1/ 术语:对我来说,spark 中的一个核心 = 一个线程。所以 Spark 中的内核不同于物理内核,对吧?Spark 核心与任务相关联,对吗?如果是这样,由于您需要一个线程用于分区,如果我的 sparksql 数据帧有 4 个分区,则它需要 4 个线程,对吗?
2/ 如果我有 4 个逻辑核心,是否意味着我只能在我的笔记本电脑上同时运行 4 个并发线程?所以 4 在 Spark 中?
3/ 设置分区数:如何选择我的数据帧的分区数,以便尽可能快地运行进一步的转换和操作?- 因为我的笔记本电脑有 4 个逻辑核心,所以它应该有 4 个分区吗?- 分区数是与物理核相关还是与逻辑核相关?- 在 spark 文档中,写到每个 CPU 需要 2-3 个任务。既然我有两个物理内核,那么分区的 nb 应该等于 4 或 6 吗?
(我知道分区数对本地模式不会有太大影响,但这只是为了理解)