独立模式下的 Spark 并行性

Bet*_*eta 9 apache-spark pyspark databricks

我正在尝试在我的系统中以独立模式运行 Spark。我的系统当前规格是8核和32GB内存。根据这篇文章,我计算 Spark 配置如下:

spark.driver.memory 2g
spark.executor.cores 3
spark.executor.instances 2
spark.executor.memory 20g
maximizeResourceAllocation TRUE
Run Code Online (Sandbox Code Playgroud)

我在我的 jupyter 笔记本中创建了 Spark 上下文,如下所示,并通过此检查并行度级别

sc = SparkContext()
sc.defaultParallelism
Run Code Online (Sandbox Code Playgroud)

默认并行度为 8。我的问题是,为什么它给我 8,即使我提到了 2 个核心?如果它没有给我系统的实际并行度,那么如何获得实际的并行度?

谢谢你!

Ram*_*ram 8

sc.defaultParallelism
Run Code Online (Sandbox Code Playgroud)

返回 SparkContext 上定义的默认并行级别。默认情况下,它是应用程序可用的核心数量。

但要了解jupyter Notebook预应用的设置是什么,您可以打印

 sc._conf.getAll()
Run Code Online (Sandbox Code Playgroud)

从斯卡拉sc.getConf.getAll.foreach(println)

应该有这个属性

Spark.默认并行度

我认为在这种情况下,它的预设就是为什么你在你的情况下得到 8。