当前位置: 首页 > article >正文

Python将Parquet文件转换为JSONL格式文件

prompt:如何使用 Python 将 Parquet 文件转换为 JSONL 格式文件 请提供完整的代码示例包括使用 pandas 或 pyarrow 读取 Parquet 文件 并将每行数据以 JSON 格式逐行写入 JSONL 文件的实现方式。 假设 Parquet 文件包含结构化数据每行对应一个记录 需要将每个记录转换为 JSON 对象并写入以换行符分隔的文本文件中。将 Parquet 文件转换为 JSONLJSON Lines格式在数据处理中非常常见。根据文件大小和内存限制通常有两种主流的实现方式使用 pandas代码最简洁适合能够一次性加载到内存中的中小型文件。使用 pyarrow支持分块Batch流式读取内存占用极低非常适合处理超大型 Parquet 文件。以下是这两种方法的完整代码示例方法一使用 pandas最简单快捷pandas 提供了非常方便的to_json方法只需设置orientrecords和linesTrue即可直接输出 JSONL 格式。安装依赖pip install pandas pyarrow代码示例import pandas as pd def parquet_to_jsonl_pandas(parquet_path, jsonl_path): 使用 pandas 将 Parquet 转换为 JSONL print(f正在读取 Parquet 文件: {parquet_path}) # 读取整个 Parquet 文件到 DataFrame df pd.read_parquet(parquet_path) print(f正在写入 JSONL 文件: {jsonl_path}) # 将 DataFrame 写入 JSONL 文件 # orientrecords : 将每一行转换为一个独立的 JSON 对象 # linesTrue : 每行写入一个 JSON 对象以换行符分隔 # force_asciiFalse: 确保中文字符等非 ASCII 字符正常显示而不是转义为 \uXXXX # date_formatiso: 确保日期时间格式被正确转换为 ISO 8601 字符串 df.to_json(jsonl_path, orientrecords, linesTrue, force_asciiFalse, date_formatiso) print(转换完成) # 使用示例 # parquet_to_jsonl_pandas(input.parquet, output_pandas.jsonl)方法二使用 pyarrow适合超大文件内存友好如果Parquet文件非常大例如几个 GB使用pandas可能会导致内存溢出OOM。此时可以使用pyarrow的iter_batches()方法分块读取并逐行写入。注意pyarrow解析出的日期时间类型是 Python 的datetime对象而 Python 内置的 json 库默认不支持序列化datetime因此我们需要写一个简单的自定义编码器。安装依赖pip install pyarrow代码示例import pyarrow.parquet as pq import json from datetime import date, datetime # 自定义 JSON 编码器用于处理 Parquet 中的日期/时间类型 class DateTimeEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, (datetime, date)): return obj.isoformat() return super().default(obj) def parquet_to_jsonl_pyarrow(parquet_path, jsonl_path): 使用 pyarrow 分块读取 Parquet 并转换为 JSONL适合处理超大文件 print(f正在打开 Parquet 文件: {parquet_path}) # 打开 Parquet 文件对象此时并未将数据全部加载到内存 parquet_file pq.ParquetFile(parquet_path) print(f正在流式写入 JSONL 文件: {jsonl_path}) # 以追加或覆盖模式打开输出文本文件 with open(jsonl_path, w, encodingutf-8) as f: # 逐块Batch读取数据默认每块包含一定数量的行 for batch in parquet_file.iter_batches(): # 将当前数据块转换为 Python 字典列表 records batch.to_pylist() # 遍历当前块的每一行记录 for record in records: # 将字典序列化为 JSON 字符串 # ensure_asciiFalse 保证中文正常显示 # clsDateTimeEncoder 处理时间字段 json_str json.dumps(record, ensure_asciiFalse, clsDateTimeEncoder) # 写入文件并添加换行符 f.write(json_str \n) print(转换完成) parquet_to_jsonl_pyarrow(input.parquet, output_pyarrow.jsonl)总结与建议首选 pandas如果你的 Parquet 文件在几百 MB 以内或者你的机器内存足够大直接使用 pandas 代码最少且底层经过高度优化执行速度非常快。备选 pyarrow如果你的文件达到了 GB 级别或者你在内存受限的环境如 Docker 容器、云函数中运行请务必使用 pyarrow 的分块读取方案它能将内存占用控制在极低的水平仅占用当前 Batch 的内存。

相关文章:

Python将Parquet文件转换为JSONL格式文件

prompt:如何使用 Python 将 Parquet 文件转换为 JSONL 格式文件? 请提供完整的代码示例,包括使用 pandas 或 pyarrow 读取 Parquet 文件, 并将每行数据以 JSON 格式逐行写入 JSONL 文件的实现方式。 假设 Parquet 文件包含结构化数据&#xf…...

Gemini提示词反推教程!“图生图”来了

看到一张心仪的室内设计图,却不知道如何描述它的高级美? 其实,每一张令人惊艳的图片背后,都有一套隐藏的代码。今天,我们要分享一套“保姆级”教程:利用 MetaChat 平台上的 Gemini 3.1 Pro 充当你的私人审美…...

基于springboot的旅游景点门票信息系统设计与实现-vue

目录 技术栈选择系统模块划分数据库设计接口设计规范前端实现要点安全措施部署方案开发流程测试计划扩展功能预留 项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 技术栈选择 后端采用Spring Boot框架,提供RESTful…...

Quartus中生成与烧录FPGA板载Flash的jic文件全流程解析

1. 为什么需要jic文件? 刚接触FPGA开发的朋友可能会疑惑:为什么编译生成的sof文件不能直接烧录到Flash?这个问题要从FPGA的特性说起。FPGA芯片内部是基于SRAM结构的,这意味着每次断电后配置数据都会丢失。想象一下你正在用电脑写文…...

致开发者:别再重复造轮子,这个开源商城系统让你把时间花在刀刃上

作为开发者,你是否厌倦了每次新项目都要从零搭建电商后台?商品、订单、会员、营销……这些基础模块耗费了你多少宝贵的创造力?今天,我们想和你聊聊一个能让你“拿来即用,改也不难”的解决方案——CRMEB开源商城系统。它…...

容盛兴达丨 32 寸医院自助查询终端机嵌入式触摸查询服务一体机

在数字化浪潮席卷各行各业的今天,医疗机构正经历着从传统服务模式向智慧化、人性化转型的关键时期。医院大厅里,患者及家属常常面临信息获取不便、排队时间长、流程不清晰等困扰。如何利用科技手段优化服务流程、提升患者就医体验,成为医院管…...

Qwen3-VL:30B多模态大模型在飞书智能办公中的实战应用

Qwen3-VL:30B多模态大模型在飞书智能办公中的实战应用 飞书作为现代企业智能办公平台,如何通过多模态大模型实现真正的智能化升级?本文将带你从零搭建企业级AI助手,让图文交互能力真正落地业务场景。 1. 为什么企业需要多模态AI助手&#xff…...

别再滥用Tick了!UE5里Cast To的正确打开方式与性能实测

UE5性能优化实战:Tick事件中Cast To的高效替代方案 在虚幻引擎5的项目开发中,性能优化往往隐藏在那些看似无害的日常操作里。Tick事件中的Cast To操作就像房间里的大象——人人都知道它存在,却常常低估它的影响。当项目规模扩大、逻辑复杂度提…...

当NB-IoT遇上同步轨道卫星:GEO场景下的定时关系增强全指南(基于3GPP Release 17最新规范)

GEO卫星场景下NB-IoT定时关系增强技术解析 1. GEO卫星通信与NB-IoT的技术融合挑战 地球静止轨道(GEO)卫星通信与窄带物联网(NB-IoT)技术的结合,为全球物联网覆盖提供了革命性解决方案。GEO卫星位于地球赤道上空35,786公…...

A-59F 多功能语音处理模组:覆盖全场景人群,让每一次语音都清晰无噪

在门禁对讲、会议扩音、车载通话、导游喊话、监护设备、智能工牌等各类语音设备中,啸叫刺耳、环境嘈杂、回音不断、拾音模糊、通话断续是所有人共同的痛点。一款真正解决问题的核心硬件 ——A-59F 多功能语音处理模组,它集成扩音防啸叫、AI ENC 降噪、AE…...

打工人必看!电脑突然罢工?阳光电脑维修上门服务救我于水火[特殊字符]

作为每天靠电脑办公的打工人,最崩溃的事情莫过于——电脑突然罢工,而手里还有紧急工作要赶!前几天晚上加班,台式机突然黑屏,按开机键没反应,键盘鼠标也没亮,急得我差点哭出来,第二天…...

Wan2.2-I2V-A14B性能调优:基于算法原理的模型推理加速策略

Wan2.2-I2V-A14B性能调优:基于算法原理的模型推理加速策略 1. 效果亮点预览 在RTX4090D显卡上,经过系统调优的Wan2.2-I2V-A14B模型展现出惊人的性能提升:单次推理耗时从原始的38ms降低至22ms,吞吐量提升近72%。更令人惊喜的是&a…...

Xcode打包上传App Store Connect失败?可能是这些配置没做好(含解决方案)

Xcode打包上传App Store Connect失败排查指南:从配置到解决方案 每次提交应用上架都是iOS开发者必经的考验,而Xcode打包上传过程中遇到的"无效二进制文件"错误堪称拦路虎。这种错误往往不会给出明确提示,而是通过邮件通知或在App S…...

探索电池2RC等效电路模型:从参数辨识到SOC估计

电池2RC等效电路模型,最小二乘法参数辩识,电池端电压误差小,扩展卡尔曼估计SOC精度高。 有文档,数据,视频,仿真图。在电池研究领域,准确建模和参数估计对于理解电池行为至关重要。今天咱就唠唠电…...

Matlab 实现 DES 与 RSA 双重加密及可视化界面搭建

基于matlab上的DES和RSA两种算法的双重加密,附带显示界面,可更改DES密钥,明文消息(在显示界面中),可在代码中更改RSA对应的p,q,e等数据,代码可附加注释和对应要求修改。在…...

OpenCore Legacy Patcher终极指南:让你的老Mac焕发新生,体验最新macOS

OpenCore Legacy Patcher终极指南:让你的老Mac焕发新生,体验最新macOS 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为老旧的Mac无法升…...

CosyVoice语音克隆应用案例:为短视频配音、制作个性化语音问候消息

CosyVoice语音克隆应用案例:为短视频配音、制作个性化语音问候消息 最近帮朋友做短视频账号,发现一个挺头疼的问题:每次拍完视频,找配音特别麻烦。要么自己录,口音重还费时间;要么用AI配音,声音…...

TMS320F28P550SJ9实战解析:Sysconfig高效配置SCI多处理器通信模式

1. TMS320F28P550SJ9的SCI通信基础认知 第一次接触TMS320F28P550SJ9的SCI模块时,我花了整整三天才搞明白它的全双工特性。这个看似简单的串行通信接口,实际上藏着不少工程师容易忽略的细节。SCI(Serial Communication Interface)作…...

旧Mac重生指南:用OpenCore Legacy Patcher解锁macOS新版本

旧Mac重生指南:用OpenCore Legacy Patcher解锁macOS新版本 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台性能依然强劲却被苹果官方抛弃的旧Mac&…...

【信号处理】基于预设性能的无模型自适应分数阶快速终端滑模控制在MIMO非线性系统中的研究附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...

vLLM-v0.17.1惊艳效果:束搜索+并行采样在长文本生成中的稳定性展示

vLLM-v0.17.1惊艳效果:束搜索并行采样在长文本生成中的稳定性展示 1. vLLM框架核心能力概览 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,其最新版本v0.17.1在长文本生成稳定性方面取得了显著突破。这个开源项目最初由加州大学伯克利分校…...

深入TC397与TLF35584的SPI通信:从寄存器操作到汽车ECU低功耗状态管理实战

深入TC397与TLF35584的SPI通信:从寄存器操作到汽车ECU低功耗状态管理实战 在汽车电子领域,电源管理芯片的选择与配置直接关系到整车电子控制单元(ECU)的可靠性与能耗表现。英飞凌的TLF35584作为一款高集成度电源管理IC&#xff0c…...

【开源鸿蒙Flutter跨平台开发实战复盘】从零到一:GitCode口袋工具项目构建全记录

1. 环境搭建:从零开始的跨平台开发之旅 作为一个有Android开发背景但完全没接触过Flutter的开发者,我最初面对开源鸿蒙和Flutter跨平台开发时也是一头雾水。环境搭建这个看似简单的第一步,就让我深刻体会到"万事开头难"的含义。 在…...

Llama-3.2V-11B-cot效果实测:同一张图不同提问下的CoT推理路径对比分析

Llama-3.2V-11B-cot效果实测:同一张图不同提问下的CoT推理路径对比分析 1. 工具概览与测试目标 Llama-3.2V-11B-cot是基于Meta多模态大模型开发的专业视觉推理工具,特别针对双卡4090环境进行了深度优化。本次测试将聚焦其核心功能——Chain of Thought…...

【FreeRTOS实战入门】一、从CubeMX到第一个任务:手把手搭建FreeRTOS工程

1. 为什么选择FreeRTOS与CubeMX组合 第一次接触嵌入式实时操作系统时,很多人会纠结选择哪种RTOS。我当年在uC/OS-II和FreeRTOS之间犹豫了很久,最终选择了后者。原因很简单:FreeRTOS不仅完全免费开源,还有STM32CubeMX这个神器加持。…...

目标检测损失函数进化史:从IoU到EIoU/SIoU/WIoU,YOLOv8性能提升完全指南

引言在目标检测领域,损失函数的设计直接影响着模型的收敛速度和检测精度。作为YOLOv8等先进检测器的核心组件,边界框回归损失函数经历了从简单到复杂的演进过程。传统的IoU(Intersection over Union)损失虽然直观有效,…...

选吉他不踩坑:合板、单板、全单材质深度解析,新手看懂这篇就够

对于新手来说,挑选吉他时最容易被“合板”“单板”“全单”这些专业术语绕晕。其实,这三者的核心区别在于木材的构成方式,而木材直接决定了吉他的音色、手感以及使用寿命。今天我们就抛开品牌干扰,纯科普这三种材质的底层逻辑&…...

MAX30102血氧传感器避坑指南:如何解决I2C信号干扰问题(附Arduino代码)

MAX30102血氧传感器实战:I2C信号干扰的深度解析与解决方案 当你在深夜调试MAX30102传感器时,突然发现心率数据频繁跳变——这可能是I2C信号干扰在作祟。作为一款高精度光学传感器,MAX30102在医疗级血氧监测和心率检测中表现出色,但…...

OpenClaw大模型API怎么选?Kimi与DeepSeek实测指南

最适配 OpenClaw 的大模型 API 是哪个?四款模型实测对比与选型指南(2026年3月) OpenClaw 内置 ReAct Agent 架构,通过工具调用(Tool Use)驱动 Shell 执行、文件操作、浏览器控制、截图等自动化任务。模型的…...

4 大平台 “免费拿” 玩法大拆解,看完不踩坑

现在很多平台都有 “0元领东西” 的活动,玩法不一样,难度也差很多。今天用大白话对比拼dd、淘b、京d、全能锦鲤,简单易懂,看完就知道该选哪个。一、各平台免费拿怎么玩?1. 拼dd(老牌砍价)玩法&a…...