-
lance.write_dataset(data_obj: ReaderLike, uri: str | Path | LanceDataset, schema: pa.Schema | None =
None
, mode: str ='create'
, *, max_rows_per_file: int =1048576
, max_rows_per_group: int =1024
, max_bytes_per_file: int =96636764160
, commit_lock: CommitLock | None =None
, 进度: FragmentWriteProgress | None =None
, storage_options: dict[str, str] | None =None
, data_storage_version: str | None =None
, use_legacy_format: bool | None =None
, enable_v2_manifest_paths: bool =False
, enable_move_stable_row_ids: bool =False
, auto_cleanup_options: AutoCleanupConfig | None =None
) LanceDataset 将给定的data_obj写入指定的uri
- Parameters:
- data_obj : Reader-like¶
要写入的数据。可接受的类型包括: - Pandas DataFrame、Pyarrow Table、Dataset、Scanner 或 RecordBatchReader - Huggingface 数据集
- uri : str, Path, or LanceDataset¶
数据集写入的目标位置(目录)。如果传入的是LanceDataset,则会复用现有会话。
- schema : Schema, optional¶
如果指定且输入为pandas DataFrame,则使用此模式替代默认的pandas到arrow表的转换。
- mode : str¶
create - 创建新数据集(如果uri已存在则会报错)。 overwrite - 创建新的快照版本 append - 创建新版本,该版本是输入数据与最新版本的合并(如果uri不存在则会报错)
- max_rows_per_file : int, default 1024 * 1024¶
在开始新文件之前要写入的最大行数
- max_rows_per_group : int, default 1024¶
在同一个文件中开始新分组前的最大行数
- max_bytes_per_file : int, default 90 * 1024 * 1024 * 1024¶
在开始新文件之前要写入的最大字节数。这是一个软性限制。该限制在每组数据写入后进行检查,这意味着较大的组可能会导致此限制被显著超出。默认值为90 GB,因为我们在对象存储上对每个文件有100 GB的硬性限制。
- commit_lock : CommitLock, optional¶
自定义提交锁。仅当您的对象存储不支持原子提交时才需要。详情请参阅用户指南。
- progress : FragmentWriteProgress, optional¶
实验性API。用于跟踪片段写入进度的功能。传入一个自定义类,该类需定义在开始写入每个片段和完成写入时调用的钩子函数。
- storage_options : optional, dict¶
针对特定存储连接的额外选项。这用于存储连接参数,如凭证、端点等。
- data_storage_version : optional, str, default None¶
要使用的数据存储格式版本。较新的版本效率更高,但需要较新版本的lance才能读取。默认值(None)将使用最新的稳定版本。更多详情请参阅用户指南。
- use_legacy_format : optional, bool, default None¶
已弃用的设置数据存储版本的方法。请改用data_storage_version参数。
- enable_v2_manifest_paths : bool, optional¶
如果为True,且这是一个新数据集,则使用新的V2清单路径。 这些路径能更高效地打开存储在对象存储上具有多个版本的数据集。如果数据集已存在,此参数将不起作用。要迁移现有数据集,请改用
LanceDataset.migrate_manifest_paths_v2()
方法。默认为False。- enable_move_stable_row_ids : bool, optional¶
实验性参数:如果设置为true,写入器将使用移动稳定的行ID。 这些行ID在压缩操作后保持稳定,但在更新后不稳定。 这使得压缩更加高效,因为使用稳定的行ID时, 无需更新二级索引来指向新的行ID。
- auto_cleanup_options : optional, AutoCleanupConfig¶
数据集自动清理的配置选项。 如果设置此选项且这是一个新数据集,旧数据集版本将根据此参数自动清理。 要为现有数据集添加自动清理功能,请使用Dataset::update_config设置 lance.auto_cleanup.interval和lance.auto_cleanup.older_than。 必须同时设置这两个参数才能启用自动清理功能。 如果不设置此参数(默认行为), 则不会执行自动清理。 注意:此选项仅在创建新数据集时生效, 对现有数据集没有影响。