【发布时间】:2021-01-22 19:43:35
【问题描述】:
我创建了一个 Parquet 数据集,分区如下:
2019-taxi-trips/
- month=1/
- data.parquet
- month=2/
- data.parquet
...
- month=12/
- data.parquet
该组织遵循 Hive Metastore 使用的 Parquet dataset partitioning convention。此分区方案是手动生成的,因此目录树中的任何位置都没有_metadata 文件。
我现在想将此数据集读入 Dask。
如果数据位于本地磁盘上,则以下代码有效:
import dask.dataframe as dd
dd.read_parquet(
"/Users/alekseybilogur/Desktop/2019-taxi-trips/*/data.parquet",
engine="fastparquet"
)
我将这些文件复制到 S3 存储桶(通过 s3 sync;分区文件夹是存储桶中的顶级键 like so),并尝试使用相同的基本功能从云存储中读取它们:
import dask.dataframe as dd; dd.read_parquet(
"s3://2019-nyc-taxi-trips/*/data.parquet",
storage_options={
"key": "...",
"secret": "..."
},
engine="fastparquet")
这引发了IndexError: list index out of range。 Full stack trace here.
目前是否可以直接从 AWS S3 读取这样的数据集?
【问题讨论】:
-
这听起来像是一个错误,你应该在 dask 跟踪器上发布
标签: python amazon-s3 dask parquet fastparquet