Kedroでcatalog.yamlからファイル保存

概要

Kedroで作成される中間ファイルを保存したい。

環境

kedro v0.17.0

方法

kedro.readthedocs.io

公式によると、catalog.yamlで保存したいファイルの保存先やデータの形式を定義できるみたい。

テキストデータ

catalog.yaml内で

data:
  type: text.TextDataSet
  filepath: data/02_intermediate/data.txt
  fs_args:
    open_args_save:
      mode: "w"

みたいにfs_argsopen_args_saveを定義。
テキストデータで保存したい場合にはtype: text.TextDataSetにする。
そして、pipeline.pyの戻り値に

def create_pipeline(**kwargs):
    return Pipeline(
        [
            node(
                ・・・
                outputs=dict(
                    data="data",
                    ・・・
                ),
            )
        ]
    )

と定義すると中間ファイルとして保存される。

csvファイル

csvファイルの場合は

data_csv:
  type: pandas.CSVDataSet
  filepath: data/02_intermediate/data.csv
  save_args:
    mode: "w"

みたいにcatalog.yamlsave_argsを定義。
このとき、type: pandas.CSVDataSetとファイルの形式を変更する必要がある。
後は、上記と同様に戻り値を定義する。