spark读取hdfs文件的分区数

一直以来都没搞懂spark读hdfs文件到底是怎么确定分区数的,分区数如果超过了spark的并行度怎么办。最近又在写spark任务,顺便看一下这个逻辑。

 

(1)spark读hdfs文件的分区数由hdfs文件占用的文件块数决定。

我们知道,hdfs文件存储的时候是分文件块的,就想操作系统存储文件一样。操作系统的一块一般是1024kB,hdfs文件一般存储大文件,一块一般设置为128MB。

例如:如果读取的一个hdfs文件大小为1280MB,可能是存储为10块,那么spark读取这个文件的分区数就是10。

(2)spark运行程序都会设置一个并行度,如果分区数超过了这个并行度怎么办?

spark的并行度是同一时刻进行任务计算的task的最大数量。如果分区数超过了并行度,那么就会排队计算。

比如读取的文件分区数是10,spark任务的并行度是5,同一时刻只会计算5个分区的内容,当某个分区计算完成空出资源之后才会计算其他分区。

 

 

参考文章:

https://www.cnblogs.com/barneywill/p/10192800.html

https://blog.csdn.net/oitebody/article/details/54934317

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值