You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HDFS单数据块文件生成Spark RDD为何出现2个分区?

为什么单个HDFS块的文件会生成2个Spark RDD分区?

你的情况主要由两个关键因素导致:

  • Spark textFile的默认分区数规则:sc.textFile()的minPartitions参数默认值是math.min(sc.defaultParallelism, 2)。从你的输出看sc.defaultParallelism=2,所以minPartitions被设为2,Spark会尝试至少创建2个分区。
  • Hadoop TextInputFormat的分片逻辑:即使文件只占1个HDFS块,只要文件内容的字节范围能被拆分成多个包含完整行的分片(不会把一行拆到两个分片里),Hadoop的TextInputFormat就会按照minPartitions的要求拆分。你的文件内容刚好可以被分成两个包含完整行的部分,所以最终生成了2个分区。

如果想要强制生成1个分区,只需要在调用textFile时指定minPartitions为1:

rdd1 = sc.textFile("hdfs://localhost:9000/hello.txt", 1)

内容的提问来源于stack exchange,提问作者nayak0765

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:22:49