跳到内容

Lance-Ray 集成

欢迎阅读 Lance-Ray 文档!Lance-Ray 将 Ray 的分布式计算能力与高效的 Lance 存储格式相结合,从而实现可扩展的数据处理工作流并获得最佳性能。

功能

  • 分布式 Lance 操作:利用 Ray 的分布式计算进行 Lance 数据集操作
  • 无缝数据转换:Ray 数据集和 Lance 数据集之间轻松转换
  • 优化 I/O:通过 Ray 集成高效读写 Lance 数据集
  • Schema 验证:Ray 和 Lance 之间自动进行 Schema 兼容性检查
  • 灵活过滤:支持对分布式 Lance 数据进行复杂过滤下推
  • 数据演化:支持数据演化以添加新列,并使用 Ray UDF 分布式回填数据
  • 目录集成:支持使用存储在各种目录服务(例如 Hive MetaStore、Iceberg REST Catalog、Unity、Gravitino、AWS Glue 等)中的 Lance 数据集

快速开始

安装

pip install lance-ray

简单示例

import ray
from lance_ray import read_lance, write_lance

# Initialize Ray
ray.init()

# Create a Ray dataset
data = ray.data.range(1000).map(lambda row: {"id": row["id"], "value": row["id"] * 2})

# Write to Lance format
write_lance(data, "my_dataset.lance")

# Read Lance dataset back as Ray dataset
ray_dataset = read_lance("my_dataset.lance")

# Perform distributed operations
result = ray_dataset.filter(lambda row: row["value"] > 100).count()
print(f"Filtered count: {result}")