我创建了一个 Parquet 数据集,分区如下:
2019-taxi-trips/
- month=1/
- data.parquet
- month=2/
- data.parquet
...
- month=12/
- data.parquet
该组织遵循Hive Metastore 使用的Parquet 数据集分区约定。_metadata
此分区方案是手动生成的,因此目录树中的任何位置都没有文件。
我现在想将此数据集读入 Dask。
对于位于本地磁盘上的数据,以下代码有效:
import dask.dataframe as dd
dd.read_parquet(
"/Users/alekseybilogur/Desktop/2019-taxi-trips/*/data.parquet",
engine="fastparquet"
)
我将这些文件复制到 S3 存储桶(通过s3 sync
;分区文件夹是存储桶中的顶级键,就像这样),并尝试使用相同的基本功能从云存储中读取它们:
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
. 完整的堆栈跟踪在这里。
目前是否可以直接从 AWS S3 读取这样的数据集?