本文以读取 parquet 文件 / parquet hive table 为例:

hive metastore 和 parquet 转化的方式通过 spark.sql.hive.convertMetastoreParquet 控制,默认为 true。

如果设置为 true ,会使用 org.apache.spark.sql.execution.FileSourceScanExec ,否则会使用 org.apache.spark.sql.hive.execution.HiveTableScanExec。

FileSourceScanExec

前者对分区规则做了一些优化,如果 文件是:

没有分桶的情况

分区大小计算公式:

bytesPerCore = totalBytes / defaultParallelism

maxSplitBytes = Math.min(defaultMaxSplitBytes, Math.max(openCostInBytes, bytesPerCore))

defaultMaxSplitBytes:spark.sql.files.maxPartitionBytes,默认为128M,每个分区读取的最大数据量

openCostInBytes: spark.sql.files.openCostInBytes,默认为4M,小于这个大小的文件将会合并到一个分区,可以理解为每个分区的最小量,避免碎文件造成的大量碎片任务。

defaultParallelism: spark.default.parallelism,yarn默认为应用cores数量或2。

bytesPerCore:数据总大小 / defaultParallelism

分桶的情况下

分区数取决于桶的数量

HiveTableScanExec

通过文件数量,大小进行分区。

例如:读入一份 2048M 大小的数据,hdfs 块大小设置为 128M

该目录有1000个小文件,则会生成1000个partition。

如果只有1个文件,则会生成 16 个分区。

如果有一个大文件1024M,其余 999 个文件共 1024M,则会生成 1007个分区。

spark读取hdfs路径下的数据_Spark读取HDFS数据分区参考相关推荐

  1. 在MATLAB中读取同一路径下多个txt或mat文件

    1.matlab中给我们提供了dir这个函数,十分方便.这里是读取所有txt文件,所以是dir('父目录路径\*.txt'),读取其它格式文件一样,如读取该路径下的所有png图像文件,则为dir('父 ...

  2. matlab文件目录表示,Matlab - 文件目录路径操作_读取不同路径下的相同文件名表格...

    Matlab - 文件目录路径操作_读取不同路径下的相同文件名表格 tr1   str1   for   max   imp   mda   eva   目录   xls clear;clc; clo ...

  3. ClassLoad类加载器读取ClassPath路径下的配置文件(一)

    ClassLoad类加载器读取ClassPath路径下的配置文件(一) 一.项目介绍 1.使用 com.test.test包下的ReadclassLoad 类去读取另一个包 com.test.util ...

  4. spark读取hdfs路径下的数据_到底什么是数据湖

    随着移动互联网,物联网技术的发展,数据的应用逐渐从 BI 报表可视化往机器学习.预测分析等方向发展,即 BI 到 AI 的转变. 数据的使用者也从传统的业务分析人员转为数据科学家,算法工程师. 此外对 ...

  5. 安卓加载asset中的json文件_Android中读取asset路径下本地json文件

    最近自己写个小demo,用到了assets文件里面的内容.猛的没想起来怎么使用.就记录下来 移动端开发中,和后台的交互方式不外乎json和xml,由于json的轻量级以及易用性,所以现在的交互协议基本 ...

  6. java读取src路径下的txt文件_Java程序使用Maven后无法运行?

    问:老师,同样的代码,为何我将Java工程改造成Maven后,始终无法运行? 实现的功能:加载abc.txt文件,代码是写在了Demo类中. 开发工具是Idea. 1.以下是普通Java工程的目录结构 ...

  7. Java读取指定路径下的文件列表

    直接贴代码吧.不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在F盘下有一个log_files的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了 ...

  8. java读取文件指定位置_Java读取指定路径下的文件列表

    直接贴代码吧.不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在F盘下有一个log_files的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了 ...

  9. c打开指定路径文件_C++ 读取指定路径下所有的文件 (C++ get the list of files in a directory)...

    电脑配置:window10, 64位操作系统,基于x64的处理器,Microsoft Visual Studio Community 2019 Version 16.4.5 实现方法:使用 boost ...

  10. java 获取ftp路径_Java Source 根据输入 ftp 地址 账号 密码 路径 读取提供路径下的文件...

    参考上面的: 引用jar包  ganymed-ssh2-build210.jar jar 包放在   $ORACLE_HOME/sqlj/lib  执行loadjava命令 加载jar包 路径下 执行 ...

最新文章

  1. JupyterLab 3.0发布!
  2. GitLab [Webhooks] 实现自动化服务器部署
  3. 以后再也不去字节面试了…
  4. Android图片编码机制深度解析(Bitmap,Skia,libJpeg)
  5. 华为、三星都崴了脚:石墨烯充电还有戏吗
  6. eclipse集成maven
  7. 【MATLAB】MATLAB基本运算
  8. 汇佳学校|应博丞:不及格“逆袭”全科满分,粉丝科普博主唤醒想象力
  9. 运用集合实现用户的注册和登录
  10. Direct2D 介绍
  11. 西门子博图功能指令(移动块)
  12. 015-包、crate、模块
  13. CentOS 6安装教程(图文详解)
  14. Vue项目首页---开发周末游组件
  15. 脑电数据的实验范式及EEGLAB分析预处理
  16. allegro标注尺寸设置_Allegro中尺寸标注文字的设置
  17. php 毛玻璃,毛玻璃 - 晚晴小筑 - OSCHINA - 中文开源技术交流社区
  18. SQL Server之查询检索操作
  19. 车企数字化转型研究:如何实现“以用户为中心”的数字化转型?
  20. 偏相关系数 - sas 实现

热门文章

  1. python使用matplotlib可视化条形图、使用barh函数可视化条形图(使用barh函数可视化多分类的并行条形图、side by side)
  2. colMedians(x) : Argument ‘x’ must be a matrix、rowMedians(data) : Argument ‘x‘ must be a matrix.
  3. python代码获取每一天在一年中出现的次数(星期)
  4. 深度学习多变量时间序列预测:GRU算法构建时间序列多变量模型预测交通流量+代码实战
  5. 泊松回归(Poisson regression)、COX回归、分类器变回归器、回归算法注意事项、多重共线性问题
  6. R新旧模型、计算净重新分类指数(NRI)和整体鉴别指数(IDI)详解及实战
  7. 珍惜当下、Relish the Moment
  8. linux进程间通讯-消息队列
  9. STM32-RCC内部总线时钟设置程序详讲
  10. 场景法设计测试用例atm_软件测试零基础入门:常用八大测试用例设计方法,含案例...