apache-spark - 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 数据源如何确定这个默认的分区数?
解决方案
分区数受多种因素影响 - 通常
spark.default.parallelism
- 您正在阅读的文件数(如果从目录中读取文件)
- 影响的集群管理器/核心数(参见spark 配置)
spark.default.parallelism
从文本文件(以及 CSV)读取时的分区数应math.min(defaultParallelism, 2)
根据CSVDataSource确定
推荐阅读
- lambda - 使用 Cognito 用户池从 Lambda 调用 APPSYNC 突变 - UnauthorizedException
- karate - 空手道 API 测试 - 我们如何从 Content-Type: text/html 类型的响应中提取值?
- npgsql - Npgsql C# wcf 应用程序在 command.ExecuteReader() 上挂起
- unit-testing - JMockit 模拟类为子方法返回 null
- javascript - 如何根据下拉选项选择不同的 API 调用
- android - 在分离的任务中使用 Gradle 插件
- angular - 有没有办法在 Jasmine 规范单元测试中使用 VS Code Debugger for Chrome?
- visual-studio-code - Visual Studio Code 主题颜色自定义
- html - 如何解决 CSS 中的网格区域问题,因为我的照片不会显示
- sql-server - 将 yyyy-mm-dd 转换或转换为 dd-mon-yyyy am/pm