csv 连接到Azure存储帐户以使用polars库通过托管身份读取Parquet文件

bweufnob  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(142)

我正在使用python版本的polars库来读取一个行数很大的parquet文件,下面是这个库的链接-https://github.com/pola-rs/polars
我正在尝试使用read_parquet方法从Azure存储帐户读取组合文件。我可以看到有一个storage_options参数,可用于指定如何连接到数据存储。以下是read_parquet方法的定义-

def read_parquet(
    source: str | Path | BinaryIO | BytesIO | bytes,
    columns: list[int] | list[str] | None = None,
    n_rows: int | None = None,
    use_pyarrow: bool = False,
    memory_map: bool = True,
    storage_options: dict[str, object] | None = None,
    parallel: ParallelStrategy = "auto",
    row_count_name: str | None = None,
    row_count_offset: int = 0,
    low_memory: bool = False,
    pyarrow_options: dict[str, object] | None = None,
) -> DataFrame:

如果我使用系统分配的托管身份,任何人都可以告诉我需要提供哪些值作为storage_options的一部分才能连接到Azure存储帐户。遗憾的是,我找不到任何此类示例。大多数示例使用连接字符串和访问密钥,由于安全原因,我无法使用它们。

**edit:**我刚知道storage_options传递给了另一个叫ffspec的库,但是我不知道。

ve7v8dk2

ve7v8dk21#

这段代码应该可以:

import pandas as pd
storage_options = {'account_name' : '<account>', 'sas_token' : '<token>'}
df = pd.read_parquet('abfs://<container>@<account>.dfs.core.windows.net/<parquet path>', storage_options = storage_options)

相关问题