【发布时间】:2020-01-07 02:53:01
【问题描述】:
这个问题已在其他帖子中提出,但似乎我的问题不适合其中任何一个。
我在本地模式下使用 Spark 2.4.4,我将 master 设置为 local[16] 以使用 16 个内核。我还在 Web UI 中看到已分配 16 个内核。
我创建了一个导入大约 8MB 的 csv 文件的数据框,如下所示:
val df = spark.read.option("inferSchema", "true").option("header", "true").csv("Datasets/globalpowerplantdatabasev120/*.csv")
最后我打印出数据框的分区数:
df.rdd.partitions.size
res5: Int = 2
答案是 2。
为什么?据我阅读,分区的数量取决于默认设置为等于核心数(16)的执行器数量。
我尝试使用 spark.default.Parallelism = 4 和/或 spark.executor.instances = 4 设置 esecutor 的数量并启动了一个新的 spark 对象,但分区数量没有任何变化。
有什么建议吗?
【问题讨论】:
-
8MB 太低了。
标签: apache-spark apache-spark-sql