【Python系列】Parquet 数据处理与合并:高效数据操作实践

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 1.Parquet 文件简介
    • 2.环境准备
    • 3.读取 Parquet 文件
    • 4.数据清洗
    • 5.数据合并
    • 6.写入 Parquet 文件
    • 7.性能优化
    • 8.总结

在大数据时代,数据的存储、处理和分析变得尤为重要。Parquet 作为一种高效的列存储格式,被广泛应用于大数据处理框架中,如 Apache Spark、Apache Hive 等。
在这里插入图片描述

1.Parquet 文件简介

Parquet 是一个开源的列存储格式,它被设计用于支持复杂的嵌套数据结构,同时提供高效的压缩和编码方案,以优化存储空间和查询性能。Parquet 文件可以被多种数据处理工具读取和写入,包括 Hadoop、Pig、Hive 等。

2.环境准备

在开始之前,确保你的 Python 环境中已经安装了 Pandas 库和 pyarrow(用于读写 Parquet 文件)。如果尚未安装,可以通过以下命令进行安装:

pip install pandas pyarrow
import pandas as pdpath1 = 'create_final_entities.parquet'path2 = '1111/create_final_entities.parquet'# 读取Parquet文件
df1 = pd.read_parquet(path1)
df2 = pd.read_parquet(path2)# 修改df1中每一条记录的name字段首尾的引号
df1['name'] = df1['name'].str.strip('"')
df1['type'] = df1['type'].str.strip('"')
df1['description'] = df1['description'].str.strip('"')# 合并两个DataFrame
df_combined = pd.concat([df1, df2], ignore_index=True)# 定义新文件的路径
output_path = '2222/create_final_entities.parquet'# 将合并后的数据写入新的Parquet文件
df_combined.to_parquet(output_path)

3.读取 Parquet 文件

在 Python 脚本中,我们首先导入必要的库,并定义 Parquet 文件的路径。使用pd.read_parquet()函数可以轻松读取 Parquet 文件到 DataFrame 对象中。示例中,我们有两个 Parquet 文件,分别存储在不同的路径下。

import pandas as pdpath1 = 'create_final_entities.parquet'
path2 = '1111/create_final_entities.parquet'df1 = pd.read_parquet(path1)
df2 = pd.read_parquet(path2)

4.数据清洗

在实际的数据操作过程中,经常需要对数据进行清洗,以确保数据的质量和一致性。在本例中,我们对df1中的nametypedescription字段进行了清洗,去除了字段值首尾的引号。

df1['name'] = df1['name'].str.strip('"')
df1['type'] = df1['type'].str.strip('"')
df1['description'] = df1['description'].str.strip('"')

5.数据合并

数据合并是数据分析中常见的操作之一。在本例中,我们使用pd.concat()函数将两个 DataFrame 对象合并为一个新的 DataFrame。ignore_index=True参数确保合并后的 DataFrame 索引是连续的,而不是重复的。

df_combined = pd.concat([df1, df2], ignore_index=True)

6.写入 Parquet 文件

完成数据合并后,我们通常需要将结果保存到新的文件中。使用to_parquet()函数可以将 DataFrame 对象写入 Parquet 文件。在写入之前,我们需要定义新文件的存储路径。

output_path = '2222/create_final_entities.parquet'
df_combined.to_parquet(output_path)

7.性能优化

在处理大规模数据时,性能是一个重要的考虑因素。Parquet 格式本身就提供了高效的压缩和编码方案,但我们还可以通过以下方式进一步优化性能:

  1. 选择合适的列进行读取:如果只需要部分列,可以在读取时指定列,减少内存消耗。
  2. 使用分区存储:如果数据集很大,可以考虑使用 Hive 或 Impala 等工具进行分区存储,以优化查询性能。
  3. 并行处理:利用 Python 的多线程或多进程能力,或者使用 Spark 等分布式计算框架进行并行处理。
    在这里插入图片描述

8.总结

通过上述步骤,我们展示了如何使用 Python 和 Pandas 库对 Parquet 文件进行高效的数据处理和合并。Parquet 文件格式以其高效的存储和查询性能,在大数据处理领域中扮演着重要角色。掌握这些基本操作,将有助于数据分析师和工程师在面对大规模数据集时,更加高效地进行数据处理和分析工作。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

unity2D游戏开发08脚本化对象

创建Scriptable Object 在scripts文件夹下创建一个名为Sriptable Objects的文件夹,然后在文件夹里面创建一个名为Item的脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;//[CreateAssetMenu] 是一个属性(Attribute),用于告诉Unity编…

非UI设计师勿入,英文B端界面的确有可取之处.

作为中文的UI设计师,可以从英文B端界面中汲取设计灵感的几种方法: 观察布局和结构: 注意英文B端界面的布局和结构,包括导航栏、侧边栏、内容区域等。观察它们的排列方式、比例和空白间隙的运用,可以借鉴到自己的设计中…

GeoHash原理介绍以及在redis中的应用

GeoHash将二维信息编码成了一个一维信息。降维后有三个好处: 编码后数据长度变短,利于节省存储。利于使用前缀检索当分割的足够细致,能够快速的对双方距离进行快速查询 GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串。 1…

十一、【Python】基础教程-【Python全掌握】六大基础数据类型:布尔类型的终极指南

目录 一、基础类型“布尔型”处理方法 1. 直接赋值和使用 2. 布尔值的逻辑运算 3. 条件语句中的布尔值 4. 布尔值转换 5. 短路逻辑 6. 在循环和迭代中的使用 一、基础类型“布尔型”处理方法 在Python中,布尔类型是一种基本的数据类型,用于表示逻…

3DMAX一键藤球建模插件RattanBall使用方法

3DMAX一键藤球建模插件RattanBall使用教程 3DMAX藤球建模插件RattanBall,一键创建藤球模型,可以设置藤球大小、嵌套层数等,简单实用,一键生成! 【适用版本】 3dMax2018.2及更高版本 【安装方法】 3DMAX一键藤球建模插…

Animate软件基础:创建及插入关键帧

这里讲一下Animate软件中创建或插入关键帧的基本方法。 FlashASer:Animate教程及作品源文件https://zhuanlan.zhihu.com/p/677437436 FlashASer:实用的各种Adobe Animate软件教程https://zhuanlan.zhihu.com/p/675680471 FlashASer:Animat…

UE5.4内容示例(1)- 学习笔记

https://www.unrealengine.com/marketplace/zh-CN/product/content-examples 《内容示例》是学习UE5的基础示例,可以用此示例熟悉一遍UE5的功能 模型与材质部分 StaticMeshes FBX_Import_Options Material_Advanced Material_Decals Material_Instances Material_N…

SpringBoot教程(十七) | SpringBoot集成swagger

SpringBoot教程(十七) | SpringBoot集成swagger 一、Swagger的简述二、SpringBoot集成swagger21. 引入依赖2. 新建SwaggerConfig配置类当 SpringBoot为2.6.x及以上时 需要注意 3.配置Swagger开关4. 给Controller 添加注解(正式使用&#xff0…

Radxa ROCK 5B+开发板基本配置和上手测试

目录 1.ROCK 5B Plus开发板是什么?2.烧录官方系统3.设置ROOT用户4.开发板温度情况5.VNC远程桌面配置6.WIFI模块测速7.M2接口使用注意8.总结 1.ROCK 5B Plus开发板是什么? ROCK 5B(即ROCK 5B Plus,本文用ROCK 5B指代) …

AMQP-核心概念-4

本文参考以下链接摘录翻译: https://www.rabbitmq.com/tutorials/amqp-concepts 绑定 (Bindings) 绑定是交换机用来将消息路由到队列的规则。为了让一个交换机E将消息路由到队列Q,Q必须绑定到E。绑定可以有一个可选属性routing key,有一些类…

VTX326蓝牙TTS语音合成芯片赋能电子称重一体机人机交互新革新

引言 随着科技的飞速发展,零售业正经历着前所未有的变革。北京宇音天下科技有限公司,作为行业的领跑者,推出了革命性的VTX326蓝牙TTS语音合成芯片,为超市、水果店、熟食店、麻辣烫店等零售业态带来了智能化的全新体验。 市场与趋…

【C语言】文件操作详解!!!

目录 为什么要使用文件? 文件概念 1. 什么是文件? 2. 程序文件 3. 数据文件 4. 文件名 文件的使用 1. 文件指针 2. 文件的打开与关闭 文件的顺序读写 1. 顺序读写函数 2. scanf系列与printf系列 文件的随机读写 1. fseek 2. ftell 3. …

数据结构第二讲:顺序表

数据结构第二讲:顺序表 1.线性表2.什么是顺序表3. 静态顺序表4.动态顺序表4.1顺序表基础4.2顺序表的初始化4.3顺序表的销毁4.4顺序表的尾插4.5顺序表的头插4.6顺序表的尾删4.7顺序表的头删4.8顺序表在指定位置之前插入数据4.9顺序表删除指定位置的数据4.10顺序表查找…

京东发行稳定币的背后

加密市场很热,京东也要来分一杯羹? 7月24日,据财联社报道,京东科技旗下的京东币链科技 ( 香港 ) 将在香港发行与港元 1:1锚定的加密货币稳定币,在市场上掀起广泛热议。 由于众所周知的监管原因,国内大厂在早…

深度学习的前沿主题:GANs、自监督学习和Transformer模型

💎 欢迎大家互三:2的n次方_ 💎1. 介绍 深度学习在人工智能领域中占据了重要地位,特别是生成对抗网络(GANs)、自监督学习和Transformer模型的出现,推动了图像生成、自然语言处理等多个领域的创…

【苍穹】完美解决由于nginx更换端口号导致无法使用Websocket

一、报错信息 进行到websocket开发的过程中,遇到了前端报错,无法连接的提示: 经过F12排查很明显是服务端和客户端并没有连接成功。这里就涉及到之前的坑,现在需要填上了。 二、报错原因和推导 应该还记得刚开苍穹的第一天配置前…

2024年第四届网络通信与信息安全国际学术会议(ICNCIS 2024,8月23-25)

2024年第四届网络通信与信息安全国际学术会议(ICNCIS2024)将于2024年8月23-25日于杭州召开。 会议围绕网络通信在信息安全领域中的最新研究成果,为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供一个分享专业经…

移植QT项目出现无法找到 v143 的生成工具(平台工具集 =“v143”)。若要使用 v143 生成工具进行生成,请安装 v143 生成工具。

由于使用的是visual studio2019,在扩展里没找到msvc v143的工具集,这时候可能需要升级下版本,比如换用visual studio2022 或者在三个地方更改所使用的工具集,一般来讲只要v143编译能通过的v142编译也能通过,所以换用v…

数据结构 —— B+树和B*树及MySQL底层引擎

数据结构 —— B树和B*树及MySQL底层引擎 B树B*树B树的应用B树在MySQL中的应用MyISAMInnoDB 我们之前学习了B树的基本原理,今天我们来看看B树的一些改良版本——B树和B*树。如果还没有了解过的小伙伴可以点击这里: https://blog.csdn.net/qq_67693066/ar…

Navicat premium最新【16/17 版本】安装下载教程,图文步骤详解(超简单,一步到位,免费下载领取)

文章目录 软件介绍软件下载安装步骤激活步骤 软件介绍 Navicat是一款快速、可靠且功能全面的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设计。以下是对Navicat的详细介绍: 一、产品概述 开发目的:Navicat旨在通过其直观和设计…