源码分析 --- Spark如何确定Splits和分区数
一、结论:
默认情况下Splits和Task和Partition数是一一对应的,数量是一样的;
1.如果在没有指定分区数的时候,默认的是sc.defaultMinPartitions=min(sc.defaultParallelism,2)。也就是sc.defaultMinPartitions只有两个值1和2,当sc.defaultParallelism>1时值为2,当sc.defaultParallelism=1时,值为1;
2.如果是读取HDFS的文件的话,分区是当我们计算出来splitSize之后,public List<InputSplit> getSplits(JobContext job) 方法中遍历 for (FileStatus file: files)文件,如果 文件大小/splitSzie > SPLIT_SLOP(1.1),则取splitSize作为一个Map输入分片,剩下的文件大小继续判断 文件大小/splitSzie > SPLIT_SLOP(1.1),直到 <= 1.1;如果文件 <= 1.1则直接将该文件作为一个Map输入分片;
3.其实这里就只有1和2两个结论,3的话只是再细致描述一下,如果是读取本地文件的话,不传递参数的话,默认的话如下,结果是2,除非是单核CPU的机器,如果传递的话就是所传递的分区数;
def textFile(path: String, minPartitions: Int = defaultMinPartitions)
其中def defaultMinPar
源码分析 --- Spark如何确定Splits和分区数相关推荐
- spark RDD详解及源码分析
spark RDD详解及源码分析 @(SPARK)[spark] spark RDD详解及源码分析 一基础 一什么是RDD 二RDD的适用范围 三一些特性 四RDD的创建 1由一个已经存在的scala ...
- spark 调度模块详解及源码分析
spark 调度模块详解及源码分析 @(SPARK)[spark] spark 调度模块详解及源码分析 一概述 一三个主要的类 1class DAGScheduler 2trait TaskSched ...
- spark mllib源码分析之随机森林(Random Forest)
Spark在mllib中实现了tree相关的算法,决策树DT(DecisionTree),随机森林RF(RandomForest),GBDT(Gradient Boosting Decision Tr ...
- Spark MLlib: Decision Tree源码分析
http://spark.apache.org/docs/latest/mllib-decision-tree.html 以决策树作为开始,因为简单,而且也比较容易用到,当前的boosting或ran ...
- Spark 随机森林算法原理、源码分析及案例实战
图 1. Spark 与其它大数据处理工具的活跃程度比较 回页首 环境要求 操作系统:Linux,本文采用的 Ubuntu 10.04,大家可以根据自己的喜好使用自己擅长的 Linux 发行版 Jav ...
- Spark源码解读之Shuffle原理剖析与源码分析
在前面几篇文章中,介绍了Spark的启动流程Spark内核架构流程深度剖析,Spark源码分析之DAGScheduler详解,Spark源码解读之Executor以及Task工作原理剖析,Spark源 ...
- Spark源码分析之七:Task运行(一)
在Task调度相关的两篇文章<Spark源码分析之五:Task调度(一)>与<Spark源码分析之六:Task调度(二)>中,我们大致了解了Task调度相关的主要逻辑,并且在T ...
- Spark 源码分析
2019独角兽企业重金招聘Python工程师标准>>> 一. 启动篇 (一) 引子 在spark-shell终端执行 val arr = Array(1,2,3,4) val rdd ...
- Spark RPC框架源码分析(二)RPC运行时序
前情提要: Spark RPC框架源码分析(一)简述 一. Spark RPC概述 上一篇我们已经说明了Spark RPC框架的一个简单例子,Spark RPC相关的两个编程模型,Actor模型和Re ...
最新文章
- 用composer安装laravel-bjyblog
- Android真机运行错误INSTALL_FAILED_MEDIA_UNAVAILABLE
- mysql存储引擎处理_[MySql学习笔记] 四 存储引擎事务处理
- java面试题之简单介绍一下集合框架
- Tricks with Direct Memory Access in Java
- boost::safe_numerics模块实现数据类型下溢的测试程序
- 20个正则表达式,举一反三,相信对你很有用
- 罗振宇2021跨年演讲1:长大以后有多少责任和烦恼?
- vf省计算机考试题库,计算机二级VF上机题库及答案
- Data Science With R In Visual Studio
- 上周热点回顾(4.30-5.6)
- 服务器内部错误文件接收失败,您的接收电子邮件服务器报告发生内部错误.docx...
- 30个必会的Axure小技巧
- dell笔记本耳机怎么设置_戴尔笔记本电脑怎样设置耳机
- MYSQL排序加分页报错Out of sort memory, consider increasing server sort buffer size
- matlab绘制分组条形图的误差棒errorbar
- UVM基础-Sequence、Sequencer(一)
- 业务层Service的作用
- 最简单的,安装flash插件
- 我的世界java版生存种子_我的世界极限生存种子
热门文章
- 这就是你日日夜夜想要的docker!!!---------Harbor私有仓库
- 【转自果壳】学习没有“关键期”,现在开始就不晚
- 人脸识别简单总结(一) 生物特征识别的前世今生
- Payssion确认参加2019年ChinaJoy游戏展
- ES6 Math新增方法trunc() sign() cbrt()
- Tensorflow环境搭建
- MMORPG传奇类手游《空空西游》完整源码(客户端cocos2d-js+服务端pomelo+cocosStudio工程+搭建教程)
- 大数据开发技术课程报告(搭建Hadoop完全分布式集群操作集群)
- 期货什么情况下会强制平仓
- Python爬虫—手机销量