maxframe.dataframe.DataFrame.to_lance#
- DataFrame.to_lance(path, mode: str = 'create', index: bool = None, index_label=None, schema=None, storage_options: dict = None, **kwargs)#
将 DataFrame 写入 Lance 数据集。
Lance 是一种为 ML 工作负载和向量搜索优化的列式数据格式。每个数据块将被写入为一个片段。
- 参数:
path (str) -- Lance 数据集的目标路径。可以是本地路径、阿里云 OSS URL 或 S3 URL。对于阿里云 OSS URL,格式为:
oss://<endpoint>/<bucket>/<path>。示例:oss://oss-cn-beijing.aliyuncs.com/my-bucket/dataset。对于 S3 URL,格式为:s3://<bucket>/<path>。mode ({'create', 'append', 'overwrite'}, default 'create') -- 如何处理现有数据:- 'create':创建新数据集(如果已存在则失败)- 'append':追加到现有数据集 - 'overwrite':覆盖现有数据集
index (bool, optional) -- 如果为 True,则将 DataFrame 索引作为列写入。如果为 False,则不写入索引。如果为 None(默认),则仅在索引不是简单的 RangeIndex 时写入索引(与
pa.Table.from_pandas的默认行为相同)。index_label (str or list of str, optional) -- 索引列的列标签。如果为 None(默认)且 index 为 True,则使用索引名称。使用此参数可在写入时重命名索引列(例如,从 '_idx_0' 重命名为 'id')。
schema (pyarrow.Schema, optional) -- 用于指定列类型、压缩、编码等的 PyArrow 模式。此模式中的列将覆盖从 DataFrame 自动检测的类型。未指定的列将使用从 DataFrame 推断的类型。
storage_options (dict, optional) -- Options for storage connection. For Aliyun OSS with RAM role:
{'role_arn': 'acs:ram::xxx:role/name'}**kwargs -- 传递给 lance.fragment.write_fragments() 的额外关键字参数。
- 返回:
一个空的 DataFrame(写入操作的结果)。
- 返回类型:
示例
>>> import maxframe.dataframe as md >>> df = md.DataFrame({'col1': [1, 2], 'col2': [3, 4]}) >>> # Write to Aliyun OSS with RAM role >>> df.to_lance( ... 'oss://oss-cn-beijing.aliyuncs.com/my-bucket/dataset', ... storage_options={'role_arn': 'acs:ram::1234567890:role/maxframe-oss'} ... ).execute() >>> # Append mode >>> df.to_lance( ... 'oss://oss-cn-beijing.aliyuncs.com/my-bucket/dataset', ... mode='append', ... storage_options={'role_arn': 'acs:ram::1234567890:role/maxframe-oss'} ... ).execute() >>> # Overwrite mode >>> df.to_lance( ... 'oss://oss-cn-beijing.aliyuncs.com/my-bucket/dataset', ... mode='overwrite', ... storage_options={'role_arn': 'acs:ram::1234567890:role/maxframe-oss'} ... ).execute()