apache-spark - 为什么单元素RDD中有这么多分区
问题描述
以下代码返回 16 个分区。1 个东西的数组怎么可能有 16 个分区?
rdd = sc.parallelize([""])
rdd.getNumPartitions()
解决方案
RDD 中创建的分区数量sc.parallelize
取决于所使用的调度程序实现。
SchedulerBackend
trait 有这个方法——
def defaultParallelism(): Int
CoarseGrainedSchedulerBackend(由纱线使用)具有此实现 -
覆盖 def defaultParallelism(): Int = { conf.getInt("spark.default.parallelism", math.max(totalCoreCount.get(), 2)) }
LocalSchedulerBackend 具有以下实现
覆盖 def defaultParallelism(): Int = scheduler.conf.getInt("spark.default.parallelism", totalCores)
这就是为什么您的 RDD 有 16 个分区的原因。
推荐阅读
- javascript - 如果在 angular.js 的对象中找不到,如何在数据库中搜索项目?
- php - 当 AJAX 发布运行时,SSE 请求停止
- c# - 如何使用 NTwain nuget 包修改分辨率 (DPI)
- c++ - Visual Studio 2013,错误 MSB8020:找不到 Visual Studio 2010 的构建工具
- java - TestNG : 按顺序运行测试
- r - 显示哪个四分位数属于大型元素列表中的数据的函数
- node.js - 在 Node.js Sequelize 中对连接表执行关联
- c# - C# 将 MP3 解压缩为文本
- c# - JSON Newtonsoft C# - 反序列化 JSON 文件中的特定字段
- python - iter(fp.readline, '') 中的行而不是 fp 中的行: