黑马程序员技术交流社区
标题: spark中分区规则 [打印本页]
作者: 玩转曼哈顿 时间: 2019-1-24 16:32
标题: spark中分区规则
本帖最后由 玩转曼哈顿 于 2019-1-26 15:44 编辑
1.textFile读取文件时,与线程数没有关系
eg:textFile模式下如果文件没有给定分区则是按照文件数进行分区,这种情况是所有文件相同大的情况下,如下图
如果指定分区数textFile(path,3)则是三个分区,在文件不一样大的情况下,分区数则 会增加,
eg:3个文件分别为9k,12k,760k加起来是781k,除以3等于260,9/260<1.1(1个分区)12/260<1.1(1个分区).760/260>1.1那么0-260(又是一个分区),760-260=500,500/260>1.1(又是一个分区)500-260=240,240/260<1.1(又一个分区)那么总共就是5个分区,如下图
如果此时不给定分区数则是按照默认最小2个分区去计算,计算出来就是4个分区
2.parallelize模式下
local是按照线程数去分区
eg:local[3]就是3个分区
但是特别注意在prarllelize模式的local下如果不指定线程数,则是1个分区
3.在伪分布式模式下
用spark-shell直接启动查看分区则是1个分区
如果spark-shell --master 则是按照伪集群模式(x为本机上启动的executor数,y为每个executor使用的core数,z为每个 executor使用的内存)
spark-shell --master local-cluster[x,y,z] spark.default.parallelism = x * y
作者: 一个人一座城0.0 时间: 2019-1-25 09:04
看一看。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |