首页 > 解决方案 > spark.csv 如何确定读取的分区数?

问题描述

在 Spark 2.2.0 中:我正在使用

spark.csv.read("filepath").load().rdd.getNumPartitions

我在一个系统中为 350 MB 文件获得 77 个分区,在另一个系统中获得 88 个分区。我还为 28 GB 文件获得了 226 个分区,大约为 28*1024 MB/128 MB 。问题是,Spark CSV 数据源如何确定这个默认的分区数?

标签: apache-spark

解决方案


分区数受多种因素影响 - 通常

  • spark.default.parallelism
  • 您正在阅读的文件数(如果从目录中读取文件)
  • 影响的集群管理器/核心数(参见spark 配置spark.default.parallelism

从文本文件(以及 CSV)读取时的分区数应math.min(defaultParallelism, 2)根据CSVDataSource确定


推荐阅读