我正在使用PartitionedDataSet从azure blob存储加载多个csv文件。我在数据目录中定义了我的数据集,如下所示。
my_partitioned_data_set:
type: PartitionedDataSet
path: my/azure/folder/path
credentials: my credentials
dataset: pandas.CSVDataSet
load_args:
sep: ";"
encoding: latin1
我还定义了一个节点来组合所有分区。但是,在将每个文件加载为CSVDataSet时,kedro没有考虑load_args,因此我得到了以下错误。
Failed while loading data from data set CSVDataSet(filepath=my/azure/folder/path, load_args={}, protocol=abfs, save_args={'index': False}).
'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
该错误表明,在加载CSVDataSet时,kedro没有考虑在PartitionedDataSet中定义的load_args。并将一个空dict作为load_args参数传递给CSVDataSet。我正在遵循文档https://kedro.readthedocs.io/en/stable/05_data/02_kedro_io.html#partitioned-dataset
我没有犯错误。
在数据集内移动load_args
my_partitioned_data_set:
type: PartitionedDataSet
path: my/azure/folder/path
credentials: my credentials
dataset:
type: pandas.CSVDataSet
load_args:
sep: ";"
encoding: latin1
数据集外部提到的
load_args
被传递到相应文件系统实现的find()
方法中要将细粒度配置传递到底层数据集,请将其放入
dataset
中,如上所述。
您可以查看文档中的详细信息
https://kedro.readthedocs.io/en/stable/05_data/02_kedro_io.html?highlight=partitoned%20dataset#partitioned-数据集定义