spark中分区规则

1.textFile读取文件时,与线程数没有关系

例如:

TEXTFILE模式下如果文件没有给定分区则是按照文件数进行分区,这种情况是所有文件相同大的情况下

   如果指定分区数textFile(path,3)则是三个分区,在文件不一样大的情况下,分区数则会增加,

例如:

3个文件分别为9K,12K,760K加起来是781k,除以3等于260,9 / 260 <1.1(1个分区)二百六十零分之十二<1.1(1个分区)0.760 / 260> 1.1那么0- 260(又是一个分区),760-260 = 500500/260> 1.1(又是一个分区)500-260 = 240240/260 <1.1(又一个分区)那么总共就是5个分区,如下图

如果此时不给定分区数则是按照默认最小2个分区去计算,计算出来就是4个分区

2.parallelize模式下

 当地是按照线程数去分区

 例如:本地[3]就是3个分区

    但是特别注意在prarllelize模式的本地下如果不指定线程数,则是1个分区

3.在伪分布式模式下

   用火花壳直接启动查看分区则是1个分区

   如果spark-shell --master则是按照伪集群模式(x为本机上启动的执行者数,y为每个执行者使用的核心数,z为每个执行者使用的内存)

   spark-shell --master local-cluster [x,y,z] spark.default.parallelism = x * y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值