Apache Arrow 旨在解决不同系统间的数据内存表示问题,通过定义一种与语言无关的列式内存格式,实现零拷贝共享。其内存布局包括有效性位图和数据缓冲区,支持高效分析运算。C 数据接口允许在同一进程中无拷贝传递数据,而 IPC 和 Flight 则支持跨进程和网络传输。Arrow 与 Parquet 互补,前者优化内存计算,后者优化磁盘存储。
本期Python潮流周刊分享了12篇文章和开源项目,内容包括Python 3.14垃圾回收、Apache Arrow支持、Python调试技巧,以及从零训练LLM的流水线和Django项目自动升级等资源,旨在提升读者的技术水平和职业发展。
mssql-python现在支持将SQL Server数据以Apache Arrow结构提取,提升了速度和内存效率。此功能允许在Polars、Pandas等库中无缝操作数据,避免了Python对象创建,降低了内存使用。新增的API包括cursor.arrow_batch、cursor.arrow和cursor.arrow_reader,适用于不同的数据提取需求,尤其在处理时间类型时表现突出。
在过去十年中,分析型数据库和查询引擎迅速发展,但数据传输协议不匹配导致效率低下。Columnar公司推出ADBC协议,利用Apache Arrow格式提升数据传输速度,已获得400万美元种子资金,并发布首批ADBC驱动程序。
Kotlin DataFrame v0.14改进了对Apache Arrow格式的读取,简化了从DuckDB和ClickHouse等数据库加载数据的流程,提高了性能。这使得Kotlin DataFrame在处理和分析大型数据集时更加强大。
Apache DataFusion已成为顶级项目,旨在构建高质量数据中心系统。它是一个快速、可扩展的查询引擎,利用Apache Arrow内存格式,支持数据库和机器学习等应用。自2019年开发以来,DataFusion社区不断壮大,成为顶级项目标志着其治理能力的提升。
Polars是一个基于Apache Arrow内存模型的开源数据框架,使用Rust编写,支持多线程和矢量化查询,具备惰性和急切执行、SIMD加速计算及查询优化功能,适合处理大数据集。
Arroyo 0.10是一个基于Apache Arrow和DataFusion构建的新型SQL引擎,提供了改进的性能、简化的架构和与其他数据系统的无缝集成。与Arroyo 0.9相比,Arroyo 0.10在吞吐量、管道启动速度和Docker镜像大小方面都有显著改进。文章还讨论了Arroyo的灵感来源、选择Rust作为编程语言以及添加SQL功能的决策。文章最后解释了列式表示和批处理在流引擎中的优势。
本文介绍了Python相关的主题,包括Apache Arrow、可组合的数据系统、Flask-Muck、Wagtail CMS、BNF符号、线程本地数据、代码审查、Python工具和项目以及即将举行的Python活动。
绿盟科技CERT监测发现Apache Arrow发布安全通告,修复了PyArrow库中的一个任意代码执行漏洞(CVE-2023-47248)。攻击者可通过构造恶意数据包,在目标系统上实现任意代码执行。受影响版本为0.14.0 <= Apache Arrow PyArrow <= 14.0.0,官方已发布新版本,请尽快升级。若无法升级,可使用官方提供的“pyarrow-hotfix”软件包禁用漏洞。
InfluxDB是一个用Rust编写的开源时间序列数据库,使用Apache Arrow、Apache Parquet和Apache DataFusion作为基础构建模块。他们最终使用了Apache Arrow、Apache Parquet、Apache DataFusion和FlightSQL来构建数据库。
韦斯·麦金尼回顾了数据科学工具的发展,提到了Apache Arrow、Ibis、RAPIDS、DuckDB和Velox等项目,讨论了数据交换、查询处理和编程接口的模块化,以及硬件加速和数据分析的中间表示的重要性。他预测未来几年将有更多投资在用户界面生产力方面。
本文主要介绍了Python相关话题和文章,包括Pandas 2.0和Apache Arrow的讨论,调用外部C函数,Python包版本控制的怪癖,以及Python编程和数据处理的教程。还包括Django、数据可视化和Apache Kafka的文章。这些资源对Python开发者非常有价值。
本文介绍了pandas 2.0中描述数据的新方法以及Apache Arrow对数据后端的增加是否会促进数据互操作性的增长。还介绍了如何从Python调用外部C函数以及Python包装的版本样式。此外,还讨论了Python中的filter()函数以及如何使用list comprehension和generator expressions来替代filter()函数。还介绍了Pandas库的使用方法以及如何提高查询的速度和效率。此外,还介绍了如何在Django项目中添加多语言支持,以及如何使用Python下载文件和使用Python操作符模块进行函数式编程。最后,还介绍了从维基百科爬取乘客数量数据并构建可视化的方法,以及使用Apache Kafka进行消息生产和消费的方法。
本文介绍了使用Go语言进行Apache Arrow和Parquet文件转换的方法,以Table和Record Batch为例,讨论了数据写入和读取,以及压缩存储。同时提到Parquet文件支持复杂的嵌套数据结构,并给出了相关参考资料。
本文是《Go语言开发者的Apache Arrow使用指南:计算层》的第五篇文章,回顾了Arrow的各个层次,重点介绍了计算层的结构,包括Datum和kernel的概念,并通过示例展示了如何向compute包添加scalar aggregate函数。最后指出了该方法的不足之处,并提到后续可能会有官方实现。
本文总结了Voltron Data公司CTO Wes McKinney的文章《Apache Arrow: Driving Columnar Analytics Performance and Connectivity》。Arrow项目是一个开源项目,旨在提供高效的列式分析和数据传输。它解决了解释型语言在大数据处理中的性能损失问题,并提供了快速的数据互操作性。Arrow已被许多项目采用,包括Spark、Dremio和Streamlit等。Arrow的贡献者社区不断扩大,项目范围也在扩展,预计将成为下一代大数据系统的关键组成部分。
Apache Arrow是一个用于内存分析的开发平台,支持高效的大数据处理和移动。Arrow定义了高压缩比的列式存储格式,并提供多种编程语言的实现。Arrow还包括通信传输和磁盘存储的子项目,方便数据传输和存储。Arrow格式规范向后兼容。
Pandas 2.0是一次重大更新,主要变化在引擎盖下,从numpy转向Apache Arrow,解决了numpy的局限性并提高了加载和保存csv文件的速度。新版本的Pandas与Polars相媲美。
本文涵盖了Python Enhancement Proposal 709对推导式处理的更改,以及如何创建自己的迭代器和可迭代对象以提高数据处理效率,以及Pandas 2.0版本的更改、Apache Arrow的采用、Python的多进程性能问题、PyTorch中的RNN、SonarQube 9.9 LTS、NumPy reshape()、Flask 13周年、CPython 3.11、Elixir、Python的类型、CData、Rust工具、Nox参数、在线Python培训等。
完成下面两步后,将自动完成登录并继续当前操作。