Ray Datasets:创建、保存与多工具集成使用指南
1. 创建和保存Ray数据集
可以通过调用 ray.data.from_items
从本地集合创建数据集,但本地集合会限制可处理的数据范围,Ray还支持其他多种方式。
1.1 Apache Arrow
Apache Arrow定义了一种独立于语言的列式内存格式,用于处理扁平数据和分层数据。其关键组件包括:
- 丰富的数据类型集,涵盖SQL和JSON类型,如int、BigInt、decimal、varchar、map、struct和array。
- 列式内存表示,支持基于定义的数据类型构建任意复杂的记录结构。
- 支持多种数据结构,如选择列表(类似枚举)、哈希表和队列。
- 使用共享内存、TCP/IP和远程直接内存访问(RDMA)进行进程间数据交换。
- 数据库,用于以多种语言(包括Java、C++、Python、Ruby、Rust、Go和JavaScript)读写列式数据。
- 各种操作的算法,如位图选择、哈希、过滤、分桶、排序和匹配。
- 通过列式内存压缩提高内存使用效率。
- 内存持久化工具,可通过非易失性内存、SSD或HDD实现短期持久化。
Ray使用Arrow将外部数据加载到数据集中,这些数据集支持多种文件格式和文件系统,目前支持的格式有CSV、JSON、Parquet、NumPy、文本和原始二进制。加载数据的函数遵循 read_[format]
模式,位于 ray.data
模块中,示例如下: