polars.read_delta#

polars.read_delta(
source: str | DeltaTable,
*,
version: int | str | datetime | None = None,
columns: list[str] | None = None,
rechunk: bool | None = None,
storage_options: dict[str, Any] | None = None,
delta_table_options: dict[str, Any] | None = None,
use_pyarrow: bool = False,
pyarrow_options: dict[str, Any] | None = None,
) DataFrame[source]#

从Delta湖表中读取数据到DataFrame。

Parameters:
source

DeltaTable 或指向 Delta 湖表根目录的路径或 URI。

注意:对于本地文件系统,支持绝对路径和相对路径,但对于支持的对象存储 - GCS、Azure 和 S3,必须提供完整的 URI。

version

Delta 湖表的数值版本或时间戳版本。

注意:如果未提供version,则读取delta lake表的最新版本。

columns

要选择的列。接受列名列表。

rechunk

确保所有列在内存中是连续的,通过将块聚合成一个单一数组。

storage_options

deltalake支持的存储后端提供的额外选项。 对于云存储,这可能包括认证等的配置。

更多信息可在此处获取 here.

delta_table_options

读取Delta湖表时的其他关键字参数。

use_pyarrow

启用pyarrow数据集读取的标志。

pyarrow_options

将Delta湖表转换为pyarrow表时的关键字参数。

Returns:
DataFrame

示例

从本地文件系统读取Delta表。 注意:由于未提供版本,因此读取的是Delta表的最新版本。

>>> table_path = "/path/to/delta-table/"
>>> pl.read_delta(table_path)  

从本地文件系统读取特定版本的Delta表。 注意:如果提供的Delta表版本不存在,此操作将失败。

>>> pl.read_delta(table_path, version=1)  

使用时间戳版本从本地文件系统进行delta表的时间旅行。

>>> pl.read_delta(
...     table_path, version=datetime(2020, 1, 1, tzinfo=timezone.utc)
... )  

从AWS S3读取一个Delta表。 查看S3支持的存储选项列表这里

>>> table_path = "s3://bucket/path/to/delta-table/"
>>> storage_options = {
...     "AWS_ACCESS_KEY_ID": "THE_AWS_ACCESS_KEY_ID",
...     "AWS_SECRET_ACCESS_KEY": "THE_AWS_SECRET_ACCESS_KEY",
... }
>>> pl.read_delta(table_path, storage_options=storage_options)  

从Google云存储(GCS)读取Delta表。 查看GCS支持的存储选项列表这里

>>> table_path = "gs://bucket/path/to/delta-table/"
>>> storage_options = {"SERVICE_ACCOUNT": "SERVICE_ACCOUNT_JSON_ABSOLUTE_PATH"}
>>> pl.read_delta(table_path, storage_options=storage_options)  

从Azure读取Delta表。

支持以下类型的表路径,

  • az:///

  • adl:///

  • abfs:///

查看Azure支持的存储选项列表这里

>>> table_path = "az://container/path/to/delta-table/"
>>> storage_options = {
...     "AZURE_STORAGE_ACCOUNT_NAME": "AZURE_STORAGE_ACCOUNT_NAME",
...     "AZURE_STORAGE_ACCOUNT_KEY": "AZURE_STORAGE_ACCOUNT_KEY",
... }
>>> pl.read_delta(table_path, storage_options=storage_options)  

读取一个Delta表,带有额外的Delta特定选项。在下面的例子中, without_files 选项被使用,该选项加载表时不包含文件跟踪信息。

>>> table_path = "/path/to/delta-table/"
>>> delta_table_options = {"without_files": True}
>>> pl.read_delta(
...     table_path, delta_table_options=delta_table_options
... )