如何选择性地从AWS S3作为Dask Data Frame读取Parquet文件?

时间:2019-08-26 07:55:59

标签: python dataframe amazon-s3 dask

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

这可能吗?

以下代码来自其API文档,但不能满足我的要求:

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参数传递目标文件列表?

1 个答案:

答案 0 :(得分: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