【问题标题】:How to selectively read Parquet files from AWS S3 as a Dask Data Frame?如何选择性地从 AWS S3 读取 Parquet 文件作为 Dask 数据框?
【发布时间】:2019-08-26 18:55:27
【问题描述】:

我想从 AWS S3 读取 Parquet 文件的选定列表。我知道如何使用 *parquet 读取目录中的所有文件,或者仅通过指定该键来读取一个文件。但是,我想根据一些先前的用户输入仅读取特定的文件列表。

这可能吗?

以下代码来自他们的 API Docs,但不能满足我的要求:

import dask.dataframe as dd

df = dd.read_parquet('s3://bucket/path/to/data-*.parque')
(OR)
df = dd.read_parquet('s3://bucket/path/to/file.parque')

有没有办法在 read_parquet 参数中传入目标文件列表?

【问题讨论】:

    标签: python dataframe amazon-s3 dask


    【解决方案1】:

    使用 Boto3,找到所有对象键,然后列出您需要的所有对象,并使用这些对象创建一个列表,并将它们在 for 循环中传递给 DF

    使用 S3fs,您可以像在 Linux 中一样列出对象,您可以将所有对象名称存储在一个列表中,然后在 for 循环中将其一个一个传递给 DF

    更多关于 Boto3 获取特定对象:Boto3: grabbing only selected objects from the S3 resource

    s3fs 来源:https://medium.com/swlh/using-s3-just-like-a-local-file-system-in-python-497737783f11

    【讨论】:

    • 我现在正在处理 UI。将在本周末尝试您的解决方案并做出相应的回应。非常感谢....
    • 您的回答对我来说是一个好的开始。但是,当使用 Dask 框架时,我们可以将整个列表作为输入参数传递,以创建一个全面的 Dask 数据框。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2020-04-13
    • 2020-10-31
    相关资源
    最近更新 更多