我知道分区可以通过在集群中的不同节点上执行并行任务来提高性能。但是当我只使用一台计算机时,分区能帮助我获得更好的性能吗?我用的是spark和scala。
fquxozlt1#
是的,它会提高性能。确保您的cpu有多个核心。进行本地sparksession时,请确保使用多核心: local 使用一个线程在本地运行,或者 local[N] 要使用n线程在本地运行,我建议您使用 local[*] 并确保您的rdd/数据集有多个分区,我好的分区数是核心数的2到4倍。
local
local[N]
local[*]
brvekthn2#
apachespark也可以垂直(cpu,ram,…)和水平(节点)扫描。我假设您的计算机/节点有一个具有多个核心的cpu。然后并行处理分区。
2条答案
按热度按时间fquxozlt1#
是的,它会提高性能。
确保您的cpu有多个核心。
进行本地sparksession时,请确保使用多核心:
local
使用一个线程在本地运行,或者local[N]
要使用n线程在本地运行,我建议您使用local[*]
并确保您的rdd/数据集有多个分区,我好的分区数是核心数的2到4倍。brvekthn2#
apachespark也可以垂直(cpu,ram,…)和水平(节点)扫描。我假设您的计算机/节点有一个具有多个核心的cpu。然后并行处理分区。