kedro.io.CachedDataset

class kedro.io.CachedDataset(dataset, version=None, copy_mode=None, metadata=None)[source]

CachedDataset 是一个数据集包装器,它会在内存中缓存已保存的数据,从而让用户避免与低速存储介质进行IO操作。

你也可以在 catalog.yml 中指定一个 CachedDataset

test_ds:
   type: CachedDataset
   versioned: true
   dataset:
      type: pandas.CSVDataset
      filepath: example.csv

请注意,如果您的数据集已版本化,应在包装类中注明,如上所示。

方法

exists()

通过调用提供的_exists()方法检查数据集输出是否已存在。

from_config(name, config[, load_version, ...])

使用提供的配置创建一个数据集实例。

load()

通过委托提供的加载方法来加载数据。

release()

释放所有缓存数据。

save(data)

通过委托给提供的保存方法来保存数据。

to_config()

将数据集实例转换为基于字典的配置以便序列化。

__init__(dataset, version=None, copy_mode=None, metadata=None)[source]

创建一个新的CachedDataset实例,指向提供的Python对象。

Parameters:
  • dataset (AbstractDataset | dict) – 一个Kedro数据集对象或要缓存的字典。

  • version (Version | None) – 如果指定,应该是kedro.io.core.Version的实例。如果其load属性为None,则将加载最新版本。如果其save属性为None,保存版本将自动生成。

  • copy_mode (str | None) – 用于复制数据的拷贝模式。可能的取值为:"deepcopy"、"copy"和"assign"。如果未提供,将根据数据类型自动推断。

  • metadata (dict[str, Any] | None) – 任意元数据。 Kedro会忽略此字段,但用户或外部插件可能会使用。

Raises:

ValueError – 如果提供的数据集不是有效的字典/YAML数据集表示形式或实际数据集。

exists()[source]

通过调用提供的_exists()方法检查数据集输出是否已存在。

Return type:

bool

Returns:

标志,指示输出是否已存在。

Raises:

DatasetError – 当底层exists方法引发错误时。

classmethod from_config(name, config, load_version=None, save_version=None)[source]

使用提供的配置创建一个数据集实例。

Parameters:
  • name (str) – 数据集名称。

  • config (dict[str, Any]) - 数据集配置字典。

  • load_version (str | None) – 如果数据集已启用版本控制,则用于load操作的版本字符串。如果未启用版本控制,则对数据集无影响。

  • save_version (str | None) – 如果数据集启用了版本控制,则用于save操作的版本字符串。如果未启用版本控制,则对数据集无影响。

Return type:

AbstractDataset

Returns:

AbstractDataset 子类的一个实例。

Raises:

DatasetError – 当函数无法从其配置创建数据集时。

load()[source]

通过委托提供的加载方法来加载数据。

Return type:

Any

Returns:

由提供的加载方法返回的数据。

Raises:

DatasetError – 当底层加载方法引发错误时。

release()[source]

释放所有缓存数据。

Raises:

DatasetError – 当底层释放方法引发错误时。

Return type:

None

save(data)[source]

通过委托给提供的保存方法来保存数据。

Parameters:

data (Any) – 需要通过提供的保存方法保存的值。

Raises:
  • DatasetError – 当底层保存方法引发错误时。

  • FileNotFoundError – 当保存方法在Windows系统上获取到的是文件而非目录时抛出该错误。

  • NotADirectoryError – 当保存方法在Unix系统上获取到文件而非目录时抛出。

Return type:

None

to_config()[source]

将数据集实例转换为基于字典的配置以便序列化。确保处理任何子类特定的细节,并为CachedDataset实现了版本控制和缓存的额外逻辑。

使用数据集的模块和类名添加一个键来表示其类型,并包含初始化参数。

对于CachedDataset,它会提取底层数据集的配置, 处理versioned标志并移除不必要的元数据。同时 确保嵌入式数据集的配置被适当地扁平化 或转换。

如果数据集有版本键,它会在配置中设置versioned标志。

如果存在,则从配置中移除metadata键。

Return type:

dict[str, Any]

Returns:

一个包含数据集类型和初始化参数的字典。