如何使用Pyarrow实现流式写入效果

2023-12-07

我拥有的数据是一种流数据。我想将它们存储到一个 Parquet 文件中。 但是 Pyarrow 每次都会覆盖 Parquet 文件。那么我该怎么办呢?

我尝试不关闭编写器,但这似乎是不可能的,因为如果我不关闭它,那么我将无法读取该文件。

这是包:

import pyarrow.parquet as pp
import pyarrow as pa
for name in ['LEE','LSY','asd','wer']:
    writer=pq.ParquetWriter('d:/test.parquet', table.schema)
    arrays=[pa.array([name]),pa.array([2])]
    field=[pa.field('name',pa.string()),pa.field('age',pa.int64())]
    table=pa.Table.from_arrays(arrays,schema=pa.schema(field))
    writer.write_table(table)
writer.close()

但实际上我想每次关闭编写器,然后重新打开它以在数据中附加一行,如下所示:

for name in ['LEE','LSY','asd','wer']:
    writer=pq.ParquetWriter('d:/test.parquet', table.schema)
    arrays=[pa.array([name]),pa.array([2])]
    field=[pa.field('name',pa.string()),pa.field('age',pa.int64())]
    table=pa.Table.from_arrays(arrays,schema=pa.schema(field))
    writer.write_table(table)
    writer.close()

Parquet 文件一旦写入就无法追加。这种情况的典型解决方案是每次写入一个新的 parquet 文件(它们可以一起形成单个分区的 parquet 数据集),或者,如果数据不多,则首先将 python 中的数据收集到单个表中,然后写入一次。

请参阅此电子邮件主题,其中包含更多相关讨论:https://lists.apache.org/thread.html/07b1e3f13b5dae7e34ee3752f3cd4d16a94deb3a5f43893b73475900@%3Cdev.arrow.apache.org%3E

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Pyarrow实现流式写入效果 的相关文章

随机推荐

  • Mongodb 不同聚合

    我正在尝试使用聚合框架在 mongo 中执行组计数 但结果并不完全符合预期 考虑下面的集合 people gt insert array user id gt 1 day gt Monday age gt 18 people gt inse
  • puppet 如何向操作系统发送命令?

    我是 Puppet 的新手 但很了解这些概念 Puppet 清单调用 Puppet 模块 模块执行实际任务 我试图了解 Puppet 模块层发生的情况 该命令实际上是如何执行的 以下面的例子为例 实际向操作系统传递了哪些命令 另外 它是在哪
  • 如何使用 LESS 将参数传递给 CSS 类?

    不确定使用 LESS 是否可以 但我看到 rotate degrees 这仅适用于 LESS 我希望能够编写一个 CSS 类并将数字作为 HTML 中的参数传递 例如 div class 这只是我使用的重复 CSS 类的一个示例 但即使传递
  • 如何从网页/网络表单发送电子邮件?

    有哪些技术可用于通过网页或网页上的表单发送电子邮件 我有一些背景想法 您可以将表单数据发布到脚本 但我真的不知道 cgi 脚本是什么 我很想知道这是否是建议的方法 或当前的做法是什么是 这只是为了给用户提供一些联系运营商的方式 页内表单似乎
  • 如何使用 nuget 分发特定于处理器的 WindowsStore 程序集

    我有一个程序集 它链接到 Windows 应用商店应用程序的本机 Sqlite 由于 Sqlite 是本机的 因此该程序集无法使用 AnyCPU 配置文件 相反 它必须提供单独的 AnyCPU x86 x64 程序集 我想通过 nuget
  • 按输出的特定顺序对属性进行排序

    如何在不显式编写的情况下按特定顺序编写元素属性 考虑
  • 使用 Java 转换为 FLV

    有谁知道如何使用java将任何类型的视频格式转换为flv 我一直在寻找用于转换视频的java api 但似乎没有这样的东西 但可能有办法做到这一点 我的意思是像youtube服务这样的东西确实可以转换视频 但是使用java 我需要一个网络应
  • 智能 Gwt 组件未在 html div 标签中呈现

    我正在使用智能 GWT 来开发我的应用程序 以创建我正在使用 GWT 组件的应用程序的结构 HTML代码片段如下 div class container div div div In my pagePaneldiv 所有组件均已添加 当我在
  • Java中“IS -A”关系和“HAS-A”关系有什么区别? [复制]

    这个问题在这里已经有答案了 我是JAVA新手 刚刚开始学习 IS A 和 HAS A 关系 但我并没有真正理解它 IS A 和 HAS A 有什么区别 什么时候应该使用 IS A 什么时候应该使用 HAS A IS A 关系是继承 继承的类
  • 如何在 Lucene 中仅标记某些单词

    我在我的项目中使用 Lucene 并且需要一个自定义分析器 Code is public class MyCommentAnalyzer extends Analyzer Override protected TokenStreamComp
  • 需要正则表达式模式来将日期与可选时间相匹配

    我需要一个将日期与可选时间相匹配的正则表达式模式 该日期应该是有效的美国日期m d yyyy格式 时间应该是h mm ss am pm或24小时时间hh mm ss 比赛 2011 年 9 月 1 日 2011 年 9 月 1 日上午 10
  • 使用 Laravel 5.8 身份验证和外部 JSON API(创建自己的 ServiceProvider)

    我正在构建一个 Laravel 5 8 应用程序 作为用 Go 编写的外部 API 的前端 我将用户 通行证发布到 API 然后 API 使用 HTTP 200 和 JSON 令牌 JWT 或 HTTP 401 进行响应 以表明凭据无效 我
  • Angular 2 客户端错误

    我刚刚接触 Typescript 和 Angular 2 我想知道哪种方法最适合记录客户端错误 这样如果生产中发生问题 我就能够找出失败的方法以及引发的错误 该应用程序的后端是用 C 编写的 并连接到 SQL Server 数据库 数据通过
  • jQuery 不关闭窗口

    我正在为电子商务网站制作一个表单 供用户请求有关某个项目的 PDF 该表单工作正常并将用户发送到 感谢 页面 在感谢页面上 我让 jQuery 设置了 5 秒后关闭窗口的时间间隔 但它不起作用 在链接中嵌入关闭命令也不起作用 但是 如果 感
  • 将整数列表分配给 @var

    I can declare idOrder int set idOrder 21319 I want declare idOrder int set idOrder 21319 21320 用于 WHERE 子句使用 IN 运算符的一系列语
  • JPackage 只能用于一个应用程序?

    我有一个 java 应用程序 在运行时将生成另一个 JVM 但我想使用 jpackage 打包我的应用程序 它运行得很好 但在运行时 当我的应用程序尝试使用以下命令调用下一个 JVM 时 File javaHome new File Sys
  • 了解投影矩阵

    我试图了解投影向量的值范围是多少 看起来和MSDN说的不符 下面的代码输出一个彩色三角形 三角形完全可见 我期望在投影顶点之后 以下内容将成立 X和Y的范围是 1到1 Z的范围是0到1 我从这里得到这个信息 http msdn micros
  • 如何使用 pymongo 获取仅包含 ObjectId 的列表?

    我有以下代码 client MongoClient data base client hkpr restore agents collection data base agents agent ids agents collection f
  • 如何使用正则表达式提取 4 位数字

    我想提取后面的所有数字company id 部分并存储在变量中 我的字符串如下所示 String company company id 4100 data drm user id 572901936637129135 company id
  • 如何使用Pyarrow实现流式写入效果

    我拥有的数据是一种流数据 我想将它们存储到一个 Parquet 文件中 但是 Pyarrow 每次都会覆盖 Parquet 文件 那么我该怎么办呢 我尝试不关闭编写器 但这似乎是不可能的 因为如果我不关闭它 那么我将无法读取该文件 这是包