ITADN
delta-io/delta-rs
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

delta-rs logo

一个用于 Delta Lake 的原生 Rust 库,并提供 Python 绑定
Python 文档 · Rust 文档 · 报告 Bug · 请求功能 · 路线图

Deltalake Crate Deltalake Deltalake #delta-rs in the Delta Lake Slack workspace

Delta Lake 是一种运行在现有数据湖之上的开源存储格式。Delta Lake 兼容 Apache Spark 等处理引擎,并提供 ACID 事务保证、模式强制以及可扩展的数据处理等优势。

Delta Lake 项目旨在通过提供面向开发者和集成者的原生底层 API,以及让您轻松查询、检查和操作 Delta Lake 的高级操作 API,为尽可能多的用户和项目释放 Deltalake 的潜力。

来源下载量安装命令文档
PyPiDownloadspip install deltalake文档
Crates.ioDownloadscargo add deltalake文档

快速开始

deltalake 库旨在采用数据处理中其他库的模式, 因此入门过程应该看起来很熟悉。

from deltalake import DeltaTable, write_deltalake
import pandas as pd

# write some data into a delta table
df = pd.DataFrame({"id": [1, 2], "value": ["foo", "boo"]})
write_deltalake("./data/delta", df)

# Load data from the delta table
dt = DeltaTable("./data/delta")
df2 = dt.to_pandas()

assert df.equals(df2)

相同的表也可以使用核心 Rust crate 加载:

use deltalake::{open_table, DeltaTableError};
use url::Url;

#[tokio::main]
async fn main() -> Result<(), DeltaTableError> {
    // open the table written in python
    let delta_path = Url::from_directory_path("/abs/data/delta").unwrap();
    let table = open_table(delta_path).await?;

    // show all active files in the table
    let files: Vec<_> = table.get_file_uris()?.collect();
    println!("{files:?}");

    Ok(())
}

你也可以在 Docker 中尝试 Delta Lake,参见 DockerHub | Docker Repo

参与贡献

delta-rs 团队致力于营造 一个友好的社区氛围。

集成

与 delta-rs 互操作的库和框架 - 按字母顺序排列。

功能

查看完整的功能表