A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 玩转曼哈顿 中级黑马   /  2019-1-24 16:32  /  2089 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 玩转曼哈顿 于 2019-1-26 15:44 编辑

1.textFile读取文件时,与线程数没有关系
      eg:textFile模式下如果文件没有给定分区则是按照文件数进行分区,这种情况是所有文件相同大的情况下,如下图
如果指定分区数textFilepath,3)则是三个分区,在文件不一样大的情况下,分区数则 会增加,
      eg:3个文件分别为9k,12k,760k加起来是781k,除以3等于2609/260<1.11个分区)12/260<1.11个分区).760/260>1.1那么0-260(又是一个分区),760-260=500,500/260>1.1(又是一个分区)500-260=240240/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

1 个回复

倒序浏览
一个人一座城0.0 来自手机 中级黑马 2019-1-25 09:04:01
沙发
看一看。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马