如何在Kedro中将Azure指定CSV文件加入DataCatalog并统一为一个数据集
Kedro加载Azure Blob Storage指定CSV为单一数据集的实现方案
首先安装所需依赖包:
pip install kedro-datasets adlfs
方案1:文件有统一命名规则(如示例sales_<date_from>_<date_to>.csv格式)
直接在conf/base/catalog.yml中配置通配符匹配目标文件,不会读取其他不符合规则的文件:
sales_transactions: # 你要设定的统一数据集名称 type: pandas.CSVDataset filepath: abfs://<你的容器名称>/sales_*.csv # 用通配符匹配4个目标文件 load_args: storage_options: account_name: <你的Azure存储账户名> # 以下认证参数二选一,建议通过credentials.yml配置避免硬编码 account_key: ${azure_credentials.account_key} # sas_token: ${azure_credentials.sas_token} # 可选:统一所有文件的列解析规则 parse_dates: [transaction_time, create_time] dtype: order_id: str amount: float
方案2:4个文件为离散命名无统一规则
直接在filepath字段中传入4个目标文件的完整Blob路径列表,完全精准匹配,不会读取额外文件:
sales_transactions: type: pandas.CSVDataset filepath: - abfs://<你的容器名称>/sales_20230101_20230131.csv - abfs://<你的容器名称>/sales_20230201_20230228.csv - abfs://<你的容器名称>/sales_20230301_20230331.csv - abfs://<你的容器名称>/sales_20230401_20230430.csv load_args: storage_options: account_name: <你的Azure存储账户名> account_key: ${azure_credentials.account_key}
补充说明
- 上述两种配置加载时,Kedro会自动读取所有指定的CSV文件,合并为单个Pandas DataFrame输出,你可以在节点中直接调用
sales_transactions数据集使用。 - 如果需要自定义合并逻辑(比如新增文件来源标识列、去重规则等),可以继承
pandas.CSVDataset自定义数据集类,重写_load方法实现自定义逻辑。 - Azure认证参数建议统一存放在
conf/base/credentials.yml中,避免硬编码泄露敏感信息。
内容的提问来源于stack exchange,提问作者DataEnthusiast
相关产品推荐
相关产品推荐

