Lance是一种列式数据格式,可轻松快速地进行版本控制、查询和训练。它旨在用于图像、视频、3D 点云、音频,当然还有表格数据。它支持任何 POSIX 文件系统和云存储,如 AWS S3 和 Google Cloud Storage。
Lance由三层组成,从底至上分别为:
Lance 的主要功能包括:
这里介绍使用pylance sdk例子,详情可以参考快速入门。
import lance import pyarrow as pa table = pa.Table.from_pylist([{"name": "Alice", "age": 20}, {"name": "Bob", "age": 30}]) lance.write_dataset(table, "./alice_and_bob.lance")
dataset = lance.dataset("./alice_and_bob.lance") # 查看dataset的行数 dataset.count_rows() dataset.take([10]) # 查看dataset的schema dataset.schema # 查看全部的dataset内容 dataset.to_table() # 根据条件扫描数据 dataset.scanner(filter="age > 25").to_table() # 根据条件扫描数据,只返回name列 dataset.scanner(columns=["name"], filter="age > 25").to_table()
# 更新某些行 dataset.update({"name": "'Blob'"}, where="name = 'Bob'") # 删除某些行 dataset.delete("name = 'Blob'") # 写入新的一批数据 table = pa.Table.from_pylist([{"name": "Alice", "age": 20}, {"name": "Bob", "age": 30}]) lance.write_dataset(table, "./alice_and_bob.lance", mode = "append")