Apache Arrow 和数据的未来:开放标准推动人工智能发展

Apache Arrow 是一种开源列式内存格式,适用于平面数据和分层数据。在现代数据湖中,开放数据格式(如 Apache Arrow)位于现代对象存储的存储层中。这些格式成为对象存储中的对象。

在最新版本中,Apache Arrow 宣布计划从 Apache DataFusion(自 2019 年 2 月以来一直附加到 Arrow 的查询执行框架)中分离出来,并将这两个项目提升到 Apache 软件基金会的顶级水平。贡献者解释说,随着两个项目的发展,它们已经分化了,虽然 DataFusion 继续依赖 Arrow,但反过来就不能说了。此举代表了 Arrow 的成熟度和在数据社区中的广泛采用。本博客旨在突出这些贡献。

了解 Apache Arrow

Arrow 格式旨在优化各种数据系统的数据处理和分析操作。这意味着 Arrow 旨在与许多不同的处理引擎配合使用,这对于处理具有许多不同用例的大量复杂半结构化数据的数据湖至关重要。

Apache Arrow 性能极高,这主要归功于其列式数据格式,最大限度地减少了对数据序列化和反序列化的需求。这种格式不仅有助于加快数据访问速度,还支持对数据湖进行实时分析。此外,Arrow 使用内存映射允许数据集由磁盘缓存提供支持,该缓存经过内存映射,可快速检索数据。此功能在 RAM 有限的环境中特别有效,可以有效地处理大型数据集。这些属性使 Arrow 成为现代数据架构的基本组件,特别是在增强不同数据环境中的互操作性和计算效率方面。

Apache Arrow 的主要优势

开源:我们长期以来一直支持现代数据堆栈的开放性。很大程度上,因为开源催生了开源,因为协作推动了创新。对于像 Apache Arrow 这样的开放标准来说尤其如此,因为它们在加速数据生态系统内的创新方面发挥着至关重要的作用。通过提供互操作性的通用框架,开放标准使开发人员能够更有效地协作,并避免在重新发明解决方案时进行冗余工作。这反过来又培养了一种创新文化,在这种文化中,想法可以被分享和建立,从而推动不断的进步和发展。

性能:通过采用 Arrow,组织可以在不同系统之间无缝交换数据,而不会产生与序列化和反序列化相关的性能成本。当然,没有什么比性能更能与性能相得益彰了。

简化集成:Arrow 提供的标准化降低了集成不同工具的复杂性,使开发人员能够专注于构建强大的解决方案,而不是应对集成挑战。通过设计,云原生项目、框架和软件开箱即用地协同工作。

采用 Apache Arrow 的著名项目

Apache Arrow 已在各种项目中得到广泛采用。我们已经写过一些,包括与 Spark 和 R 的集成,但还有更多,包括但不限于:

1 . Polars:是 Rust 中一个速度极快的 DataFrame 库,它利用 Arrow 的列式存储格式进行高效的数据处理,增强了性能和可扩展性。Polars 与 Apache Arrow 的集成巩固了现代数据湖基础设施的基础,可实现高速数据运维和分析。

2 . DuckDB:与 Apache Arrow 无缝集成,实现高效的数据交换,实现快速的数据传输和分析。这种集成在现代数据湖基础设施中起着举足轻重的作用,有助于跨不同数据集进行快速数据处理和查询执行。

3 . ClickHouse:是一个开源的分析数据库管理系统,以其在实时查询处理方面的高性能而闻名。它利用 Apache Arrow 来增强其操作的几个方面,主要侧重于数据导入和导出,以及启用直接查询功能。

4 . PySpark:利用 Apache Arrow 的列式数据表示来实现高效的数据处理,增强性能和可伸缩性。PySpark 与 Apache Arrow 的无缝集成为现代数据湖基础设施奠定了基础,使组织能够轻松构建强大且可扩展的数据处理管道。

5 . Pandas:受益于 Arrow 高效的内存布局和互操作性,支持与现代数据湖堆栈中的其他系统和语言进行无缝数据交换。

6 . Ray:是一个分布式计算框架,它利用 Apache Arrow 进行高效的数据序列化和分布式任务之间的传输。这种集成增强了 Ray 的性能和可扩展性,使用户能够轻松构建和部署分布式应用程序。

7 . delta-rs:是一个开源的 Rust 库,为 Delta Lake 提供原生 Rust 实现。Delta-rs 使用 Arrow 在内部存储和管理数据,从而可以快速、高效地对 Delta Lake 表进行操作,尤其是在处理大型数据集时。

8 . iceberg-arrow:是一个 Iceberg Table 支持库,允许将 Parquet 读取到 Arrow 内存中。它的性能等于或优于默认的 Parquet 矢量化阅读器。

9 . Hugging Face Datasets 将 Arrow 用于其磁盘缓存系统,该系统允许将大型数据集本地存储在内存有限的系统上。磁盘上的缓存是内存映射的,以实现高效查找。

10 . RAPIDS:是一套用于 GPU 加速数据科学和分析的开源库,它利用 Apache Arrow 实现 GPU 加速数据处理任务之间的互操作性。这种集成使 RAPIDS 能够利用 Arrow 高效的列式格式在 GPU 上进行高速数据处理。

虽然这些项目代表了拥抱 Apache Arrow 的庞大生态系统的一个子集,但它们体现了该标准在不同领域和用例中的多功能性和适应性。

开源标准

Apache Arrow 证明了开放标准在推动现代数据湖中的互操作性和创新方面的力量。随着组织继续利用其堆栈中开放标准的功能,人工智能和分析的变革性进步潜力仍然无限。

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

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

相关文章

45、基于深度学习的螃蟹性别分类(matlab)

1、基于深度学习的螃蟹性别分类原理及流程 基于深度学习的螃蟹性别分类原理是利用深度学习模型对螃蟹的图像进行训练和识别,从而实现对螃蟹性别的自动分类。整个流程可以分为数据准备、模型构建、模型训练和性别分类四个步骤。 数据准备: 首先需要收集包…

解决vmware “处理器不支持 XSAVE。无法打开此虚拟机的电源。“

1,打开windows 10-11 的 虚拟机平台 选择 “开始”,输入“Windows 功能”,然后从结果列表中选择“打开或关闭 Windows 功能 ”。 在刚刚打开的 “Windows 功能”窗口中,找到“虚拟机平台 ”并将其选中。 选择“确定”。 可能需要重启电脑。…

Docker常用操作和命令

文章目录 1、卸载旧版本 2、yum安装Docker CE(社区版) 3、添加镜像加速器 4、docker --version 查看docker版本 5、docker info 或 docker system info 显示 Docker 系统的详细信息,包括容器、镜像、网络等 6、docker search 搜索镜像 …

服务端代码编写中MySql大小写在Java中报错问题解决

报错信息: 原因:MySql和Java变量大小写产生的冲突。 经过查阅各个博客等,得出浅显结论(不一定对):MySql大小写不敏感,Java大小写敏感,当Javabean转为MySql数据库表时,Ja…

《QT实用小工具·七十一》基于Qt+Qml开发的文件传输工具

1、概述 源码放在文章末尾 该项目基于QTQML实现了文件传输的功能,可以在局域网环境下使用(热点),扫描使用UDP,传输使用TCP,每一个文件传输使用独立的线程进行处理,高效便捷。 开发环境 使用Qt/Qml开发 QT版本&#x…

韩顺平0基础学java——第28天

p569-591 坦克大战!(绘图监听事件线程文件处理) 绘图 绘图原理 Component类提供了两个和绘图相关最重要的方法: 1. paint(Graphics g)绘制组件的外观 2. repaint()刷新组件的外观。 当组件第一次在屏幕显示的时候,程序会自动的调用paint()…

基于PSO粒子群优化的CNN-GRU的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 卷积神经网络(CNN) 4.2 CNN-GRU模型架构 4.3 CNN-GRU结合PSO的时间序列预测 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软…

Ubuntu 18.04 安装 PCL 1.14.1

在进行科研项目时,我们常常需要将 C 和 Python 结合起来编程。然而,每次将 PCL(Point Cloud Library)的内容添加到 CMakeLists.txt 文件中时都会报错。在深入分析后,我们推测可能是当前使用的 PCL 1.8 版本与现有程序不…

人工智能在空间转录组学领域的最新研究进展|顶刊速递·24-06-22

小罗碎碎念 本期推文的主题:人工智能在空间转录组学领域的最新进展 提到空间转录组学就不可避免会与单细胞测序、免疫治疗以及肿瘤微环境扯上关系,所以这也是当下的热点之一。 我个人认为这一部分门槛相对于影像组学和病理组学较高,需要具备…

MFC绘制哆啦A梦

文章目录 OnPaint绘制代码完整Visual Studio工程下载其他卡通人物绘制 OnPaint绘制代码 CPaintDC dc(this); // 用于绘画的设备上下文CRect rc;GetWindowRect(rc);int cxClient rc.Width();int cyClient rc.Height();// 辅助线HPEN hPen CreatePen(PS_DOT, 1, RGB(192, 192,…

STM32通过SPI软件读写W25Q64

文章目录 1. W25Q64 2. 硬件电路 3. W25Q64框架图 4. 软件/硬件波形对比 5. 代码实现 5.1 MyI2C.c 5.2 MyI2C.h 5.3 W25Q64.c 5.4 W25Q64.h 5.5 W25Q64_Ins.h 5.6 main.c 1. W25Q64 对于SPI通信和W25Q64的详细解析可以看下面这篇文章 STM32单片机SPI通信详解-CSDN博…

概念描述——TCP/IP模型中的两个重要分界线

TCP/IP模型中的两个重要分界线 协议的层次概念包含了两个也许不太明显的分界线,一个是协议地址分界线,区分出高层与低层寻址操作;另一个是操作系统分界线,它把系统与应用程序区分开来。 高层协议地址界限 当我们看到TCP/P软件的…

MySQL数据备份操作步骤

常见的数据备份命令 备份命令备份速度恢复速度介绍功能适用场景lvm2快照快快一般、支持几乎热备、速度快一般中小型数据量的备份cp快快物理备份、灵活性低很弱少量数据备份xtrabackup较快较快实现innodb热备、对存储引擎有要求强大较大规模的备份mysqldump慢慢逻辑备份、适用所…

【React】AntD组件---极客园--01.项目前置准备

项目搭建 基于CRA创建项目 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start调整项目目录结构 -src-apis 项目接口函数-assets 项目资源文件&…

【算法训练记录——Day32】

Day32——贪心算法Ⅱ 1.leetcode122买卖股票的最佳时机II2.leetcode55跳跃游戏3.leetcode45跳跃游戏II4.eetcode1005K次取反后最大化的数组和 目标: leetcode122买卖股票的最佳时机IIleetcode55跳跃游戏leetcode45跳跃游戏IIleetcode1005K次取反后最大化的数组和 1…

在Windows上用MinGW编译OpenCV项目运行全流程

一、准备软件 OpenCV源码CMake工具MinGW工具链(需要选用 posix 线程版本:原因见此) 二、操作步骤 官网提供了VC16构建版本的二进制包,但是没有给出GCC编译的版本。所以如果使用MinGW进行构建,那就只能从源码开始构建…

智慧公厕系统厂家的核心技术与光明源应用案例

随着城市化进程的加快和智慧城市建设的推进,智慧公厕系统在提升公共服务质量和用户体验方面发挥了重要作用。智慧公厕系统厂家的核心技术是确保这一系统高效运转和用户满意度的关键。以下将介绍智慧公厕系统厂家的核心技术,并通过光明源的应用案例展示其…

WordPress简单好看的线报主题模板源码

安装说明 到WordPress管理后台中的「外观」-「主题」中点击「添加」,选择baolog的主题包进行上传安装并启用即可。 提示:为了防止主题不兼容,请在安装主题前进行数据备份,防止数据字段重复覆盖等情况发生。 源码截图 源码下载 …

cefsharp 修改请求头request.Headers,以实现某种请求验证(v100+已测试)含主要源码和注释

(一)目的:cefsharp实现修改请求头 Tip:网上搜的很多代码都无法实现(要么版本较低,方法有变,要么就行不通),较多的错误是:集合属性只读。其中一个bili网友的测试方法注解一张图,但没有具体代码。参考一下。 (二)实现方法 2.1 创建对象 ChromiumWebBrowser home…

在敏捷项目管理中实施 Scrum 方法

在本文中,我将阐明敏捷项目管理中的 Scrum 流程。我将深入探讨 Scrum 方法论中不可或缺的角色。本文将全面概述敏捷开发中的 Scrum 流程。我将解释 Scrum 的核心组件,详细探索端到端 Scrum 流程。在本文结束时,您将清楚地了解 Scrum 的工作原…