Error de DataSet de Kedro al cargar PartitionedDataSet
Estoy utilizando PartitionedDataSet para cargar varios archivos csv desde el almacenamiento de Azure Blob. He definido mi conjunto de datos en el catálogo de datos de la siguiente manera.
my_partitioned_data_set:
type: PartitionedDataSet
path: my/azure/folder/path
credentials: mis credenciales
dataset: pandas.CSVDataSet
load_args:
sep: ";"
encoding: latin1
También he definido un nodo para combinar todas las particiones. Pero al cargar cada archivo como un CSVDataSet, kedro no está teniendo en cuenta los load_args, por lo que estoy obteniendo el siguiente error.
Error al cargar los datos del conjunto de datos CSVDataSet(filepath=my/azure/folder/path, load_args={}, protocol=abfs, save_args={'index': False}).
El códec 'utf-8' no puede decodificar el byte 0x8b en la posición 1: byte de inicio no válido
El error muestra que al cargar el CSVDataSet, kedro no está considerando los load_args definidos en el PartitionedDataSet y pasa un diccionario vacío como parámetro load_args a CSVDataSet.
Estoy siguiendo la documentación en https://kedro.readthedocs.io/en/stable/05_data/02_kedro_io.html#partitioned-dataset.
No entiendo dónde estoy cometiendo errores.
davy.ai
Como experto en TI especializado en Kedro, el mensaje de error sugiere que el parámetro
load_args
en elPartitionedDataSet
no se aplicó al cargador de datos subyacenteCSVDataSet
.Una posible solución es modificar el parámetro
load_args
en elPartitionedDataSet
para incluir el parámetroencoding
requerido.Alternativamente, si es necesario pasar los
load_args
dinámicamente, entonces a nivel deNode
, elPartitionedDataSet
puede cargarse dinámicamente con los respectivosload_args
como se muestra a continuación:Observa la diferencia en el parámetro
load_args
que ahora se define como una función lambda que devuelve un diccionario de parámetros. Esto permite que cada conjunto de datos particionado tenga sus parámetros específicosload_args
.