parquet介绍

概述

Apache Parquet 是一种开源的列式数据文件格式,旨在实现高效的数据存储和检索。它提供高性能压缩和编码方案(encoding schemes)来批量处理复杂数据,并且受到许多编程语言和分析工具的支持。

parquet-format

parquet-format 存储库托管 Apache Parquet 文件格式的官方规范,该规范定义了数据的结构和存储方式。此规范以及 Thrift 元数据定义和其他关键组件对于开发人员有效读取和写入 Parquet 文件至关重要。parquet-format 项目专门包含理解和正确使用 Parquet 文件所需的格式规范。

作为一个专注于规范的存储库,parquet 格式的存储库不包含源代码。

文件格式

应该将此文件和 thrift 定义一起阅读才能理解其格式。

在这里插入图片描述

在上面的例子中,该表有 N 列,分为 M 个行组。文件元数据包含所有列块(column chunks)起始位置的位置。有关元数据中包含的内容的更多详细信息,请参阅 Thrift 定义。

在这里插入图片描述

该格式明确设计用于将元数据与数据分离。这样可以将列拆分为多个文件,也可以让单个元数据文件引用多个 parquet 文件。

配置

行组大小

较大的行组允许较大的列块,从而可以进行较大的顺序 IO。建议使用较大的行组(512MB - 1GB)。

数据页大小

数据页应被视为不可分割的,因此较小的数据页允许更细粒度的读取(例如单行查找)。较大的页面大小会产生较少的空间开销(较少的页眉)和潜在的较少的解析开销(处理页眉)。建议页面大小为 8KB。

元数据

元数据有两种类型:文件元数据和页眉(page header)元数据。

文件元数据由FileMetaData结构描述,此文件元数据提供在浏览 Parquet 文件时有用的偏移量和大小信息。

页眉元数据(PageHeader以及图中的子元数据)与页面数据内联存储,并用于读取和解码所述数据。

所有 thrift 结构都使用 TCompactProtocol 序列化。这些结构的完整定义在 Parquet Thrift 定义中给出。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何配置yolov10环境?

本文介绍如何快速搭建起yolov10环境,用于后续项目推理、模型训练。教程适用win、linux系统 yolo10是基于yolo8(ultralytics)的改进,环境配置跟yolo8几乎一模一样。 目录 第1章节:创建虚拟环境 第2章节:…

Tita的OKR:最新20个HR人力资源OKR案例

OKR是一个目标设定框架,可以提高员工的参与度,同时帮助人们专注于最重要的事情。 然而,OKR最大的挑战之一是设定正确的目标,我与很多人力资源专业人士交谈过,他们证明他们的OKR并不完美。 这就是为什么我们收集了最佳…

水文:CBA业务架构师

首先, 我们来了解一下什么是CBA业务架构师? CBA业务架构师认证是由业务架构师公会(Business Architecture Guild)授予的一种专业认证。标志着证书持有者已经掌握了业务架构的核心技能和知识,能够在实际工作中熟练运用业务架构技术和框架&…

Jetson-AGX-Orin 安装ROS2

Jetson-AGX-Orin 安装ROS2 确保Orin能够上网 1、安装依赖 sudo apt update sudo apt install curl gnupg2 lsb-release2、添加源 sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpgecho &q…

【C++课程学习】:new和delete为什么要配套使用,new,delete和malloc,free的比较

🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🎡1.new,delete和malloc,free的区别: ⌚️相同点&…

“删错文件后如何高效挽救?两大恢复策略全解析“

在数字化日益深入生活的今天,数据已成为我们工作、学习和娱乐不可或缺的一部分。然而,删错文件的经历却如同数字世界中的一场“小插曲”,不经意间就可能让我们陷入数据丢失的困境。无论是误触删除键、清空回收站,还是软件故障导致…

数据结构(其一)--基础知识篇

目录 1. 数据结构三要素 1.1 数据结构的运算 1.2 数据结构的存储结构 2. 数据类型,抽象数据类型 3. 算法 3.1 时间复杂度T(n) 3.2 空间复杂度 1. 数据结构三要素 1.1 数据结构的运算 即,增删改查 1.2 数据结构的存储结构 2. 数据类型&#xff0…

视觉语言模型导论:这篇论文能成为你进军VLM的第一步

近些年,语言建模领域进展非凡。Llama 或 ChatGPT 等许多大型语言模型(LLM)有能力解决多种不同的任务,它们也正在成为越来越常用的工具。 这些模型之前基本都局限于文本输入,但现在也正在具备处理视觉输入的能力。如果…

录屏软件免费推荐,拥有这4款,不花一分钱

在这个充满创意与活力的数字时代,录屏软件早已成为我们探索世界、分享生活的必备神器。但市面上却存在很多收费的录屏软件,让人望而却步。那么有没有一些录屏软件免费帮助我们轻松开启录影人生,尽情展现创意与才华呢? 本文就将带…

痉挛性斜颈是中医治疗好还是西医好呢?你有真正了解吗?

痉挛性斜颈是西医治疗好还是中医治疗好 痉挛性斜颈,是由于中枢神经系统异常冲动引起的颈部肌群阵发性不自主收缩,使头颈向一侧扭转或痉挛性倾斜。 痉挛性斜颈的病因,多数是由于脑深部的神经细胞病变引起的。这些病人可以有脑炎、出生时窒…

光电门验证动量守恒实验

本实验所需器件与第二个实验相同。但是连线方式有所区别,先将Arduino的电源输出接到两个光电门,然后再将光电门1的信号输出线接到Arduino的第10个端口,光电门2的信号输出线接到Arduino的第11个端口。对Arduino写入下列程序(只有主…

【GreenHills】GHS-Servecode的查看和说明

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 在Green Hills客户申请license试用以及正式文件的Servecode编号会有不同,该文档对此进行说明并如何主动查看Servecode,并且说明Servecode的类别,通过Servecode了解客户授权情况。 …

【机器学习】初学者经典案例(随记)

🎈边走、边悟🎈迟早会好 一、概念 机器学习是一种利用数据来改进模型性能的计算方法,属于人工智能的一个分支。它旨在让计算机系统通过经验自动改进,而不需要明确编程。 类型 监督学习:使用带标签的数据进行训练&…

2-30 基于matlab的神经网路下身份证号码识别算法

基于matlab的神经网路下身份证号码识别算法,二值化、膨胀处理、边界区域划分、身份证字符分割,字符识别算法,输出识别结果。并保存识别结果。程序已调通,可直接运行。 2-30 神经网络 身份证识别 图像处理 - 小红书 (xiaohongshu.c…

FastAPI 学习之路(四十)后台任务

我们在实际的开发中,都会遇到,我们要执行的一些任务很耗时,但是对于前端,没必要进行等待。比如发送邮件,读取文件。我们在fastapi如何实现呢。 其实很简单,fastapi已经给我们封装好一个现成的模块&#xff…

4款免费国产开源软件,功能过于强大,常被认为是外国人开发

之前小编分享了一些良心的电脑软件,大部分都是国外的开源软件,就有部分同学在后台说小编有点极端了,国内也是有良心的电脑软件的。 本期就是国产软件专场,今天就给大家推荐几款良心的国产电脑软件,说真的,…

UNIAPP_ReferenceError: TextEncoder is not defined 解决

错误信息 1、安装text-decoding npm install text-decoding2、main.js import { TextEncoder, TextDecoder } from text-decoding global.TextEncoder TextEncoder global.TextDecoder TextDecoder

ENSP防火墙综合配置

综合拓扑: 实验要求: 要求一 生产区的安全策略配置 办公区的安全策略 要求二 生产区的安全策略 游客和办公区的安全策略 因为ISP返回的数据包会被防火墙最后的默认安全策略给拒绝,所以,把要ISP返回的数据给允许通过 要求三 增加…

python如何计算今天是星期几

需要解决的问题:时区问题 解决方案:引入pytz 封装的方法如下: import datetime from .. import pytzweek_list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六&quo…

人工智能及深度学习在病理组学中的应用概述|系列推文·24-07-11

小罗碎碎念 从本期推文开始,小罗将开始进行一项长期的工作——从头开始梳理人工智能在病理组学中的应用。 我会先从机器学习的进展开始讲,随后过渡到深度学习,再进一步阐述数据的处理分析方法,最后介绍人工智能在精准医疗以及病…