我有一个大型的日常文件数据集,位于/some/data/{YYYYMMDD}.parquet
(或者也可以是 smth like /some/data/{YYYY}/{MM}/{YYYYMMDD}.parquet
)。
我在 mycat.yaml 文件中描述数据源如下:
sources:
source_paritioned:
args:
engine: pyarrow
urlpath: "/some/data/*.parquet"
description: ''
driver: intake_parquet.source.ParquetSource
我希望能够将文件子集(分区)读入内存,
如果我跑, source = intake.open_catalog('mycat.yaml').source_partitioned; print(source.npartitions)
我会得到0
. 可能是因为分区信息还没有初始化。之后source.discover()
,source.npartitions
更新为1726
磁盘上单个文件的数量。
我将如何加载数据:
- 仅针对给定的一天(例如 20180101)
- 持续几天(例如 20170601 和 20190223 之间)?
如果这在 wiki 上的某处有所描述,请随时将我指向相应的部分。
注意:在考虑了更多之后,我意识到这可能与 dask 的功能有关,并且我的目标可能可以通过使用方法将源转换为 dask_dataframe 以某种方式实现.to_dask
。因此dask
在这个问题上贴上标签。