关于Kedro的资料整理

关于Kedro的资料整理

  • Kedro介绍
  • Kedro的优势
    • 高复用性
    • 高拓展性
    • 提高代码规范性与可维护性
    • 解决传统notebook一次性脚本和胶水代码的问题
  • 配置Kedro环境
    • 环境要求
    • 虚拟环境
    • 安装
  • 创建一个简单的Kedro项目
  • Kedro-API
    • config
    • extras
    • framework
    • IO
    • pipeline
    • runner
    • utils

Kedro介绍

kedro是一款开源的Python框架,通过提供统一的项目模板,数据抽象,配置和管道组装,用于对机器学习任务进行规范化、模块化、流水线化的开发、管理和控制。

Kedro的优势

就机器学习来说,相较而言,传统NoteBooke更适用于研究开发与测试,而Kedro更适用于生产环境对项目进行流程化管理与拓展。

Kedro的优势主要体现在以下几个方面:

高复用性

pass

高拓展性

pass

提高代码规范性与可维护性

pass

解决传统notebook一次性脚本和胶水代码的问题

pass

配置Kedro环境

环境要求

  • Kedro支持macOS,Linux和Windows(7 / 8 / 10和Windows Server 2016
    +)。如果您在这些平台上遇到任何问题,请查看常见问题,GitHub讨论或Discord服务器。
  • 要使用Kedro,我们强烈建议您下载并安装Anaconda(Python 3.x版本)。
  • 如果您使用 PySpark,则还必须安装 Java。如果您是 Windows 用户,则需要管理员权限才能完成安装。

虚拟环境

Python虚拟环境的主要目的是为Python项目创建一个隔离的环境,使其拥有自己的依赖项,而不管其他项目如何。我们建议您为创建的每个新 Kedro 项目创建一个新的虚拟环境。

根据你首选的Python安装,您可以创建虚拟环境来使用Kedro,如下所示:

  • 如果使用conda的python环境,可以使用与Anaconda捆绑在一起的软件包和环境管理器程序生成虚拟环境,参照Anaconda创建虚拟环境。
  • 若使用原生的python环境,建议使用venv或pipenv,参照Python虚拟环境。

安装

要从Python包索引(PyPI)安装Kedro,只需运行:

  • 原生python环境使用:pip install kedro
  • Conda环境使用:conda install -c conda-forge kedro

创建一个简单的Kedro项目


Kedro-API

Kedro为开发者提供了如piplines管道、IO数据集读写、config配置文件、extras数据集拓展等API接口,增加开发时的灵活性。

config

kedro.config提供了从不同文件格式加载 Kedro 配置的功能。

    类

  • Kedro一般通过kedro.config.ConfigLoader以递归的形式查找具有或者以conf_source、yaml、yml、json、ini、pickle、xml、properties为扩展名的文件,然后进行加载,并以字典形式返回。
    class kedro.config.ConfigLoader(conf_source, env=None, runtime_params=None, *, base_env='base', default_run_env='local')
  • kedro.config.TemplatedConfigLoaderkedro.config.ConfigLoader类的拓展,它允许模板只(括在括号中,如:${…})根据配置自动格式化。
    class kedro.config.TemplatedConfigLoader(conf_source, env=None, runtime_params=None, *, base_env='base', default_run_env='local', globals_pattern=None, globals_dict=None)

    异常

  • MissingConfigExceptionRaised :当在config路径中没有找到config配置文件时抛出该异常

extras

kedro.extras为开发者提供数据集扩展等功能

    模块

  • kedro.extras.datasets为开发者提供Kedro所有数据连接器的接口。
  • kedro.extras.extensions为开发者提供了一个ipython的拓展接口
  • kedro.extras.logging此模块包含一个生成彩色日志的日志记录处理程序类。

framework

kedro.framework是用于提供 Kedro 的框架组件

    模块

  • kedro.framework.cli实现 Kedro 的 CLI 中可用的命令。
  • kedro.framework.context提供了加载 Kedro 项目上下文的功能。
  • kedro.framework.hooks提供了使用钩子来扩展 KedroContext 行为的基元
  • kedro.framework.project模块提供了配置 Kedro 项目并访问其设置的灵活性。
  • kedro.framework.session提供对负责项目生命周期的 KedroSession 的访问。
  • kedro.framework.startup此模块为 Kedro 项目提供元数据。

IO

kedro.io提供读取和写入多个数据集的功能。该库的核心是 AbstractDataSet,它允许实现各种AbstractDataSet

    类

  • AbstractDataSet是所有数据集实现的基类。所有数据集实现都应扩展此抽象类,并实现标记为抽象的方法。如果特定的数据集实现不能与ParallelRunner结合使用,则此类用户定义的数据集应具有属性 _SINGLE_PROCESS = True。
    kedro.io.AbstractDataSet(*args, * *kwargs)

  • AbstractVersionedDataSet是所有版本化数据集实现的基类。
    class kedro.io.AbstractVersionedDataSet(filepath, version, exists_function=None, glob_function=None)

  • DataCatalog存储抽象数据集实现的实例,以便从程序中的任何位置提供和功能。loadsave
    classkedro.io.DataCatalog(data_sets=None, feed_dict=None, layers=None)

  • LambdaDataSet将数据加载并保存到数据集。
    class kedro.io.LambdaDataSet(load, save, exists=None, release=None)

  • MemoryDataSet加载数据并将其保存在内存中的 Python 对象中。
    class kedro.io.MemoryDataSet(data=, copy_mode=None)

  • PartitionedDataSet使用基础数据集定义加载和保存分区的类似文件的数据。
    class kedro.io.PartitionedDataSet(path, dataset, filepath_arg='filepath', filename_suffix='', credentials=None, load_args=None, fs_args=None, overwrite=False)

  • IncrementalDataSet增量数据集继承自 PartitionedDataSet,后者使用基础数据集定义加载和保存分区的类似文件的数据。
    class kedro.io.IncrementalDataSet(path, dataset, checkpoint=None, filepath_arg='filepath', filename_suffix='', credentials=None, load_args=None, fs_args=None)

  • kedro.io.CachedDataSet(dataset[, version, …]):CachedDataSet是一个数据集包装器,它将保存的数据缓存在内存中,以便用户避免使用慢速存储介质进行io操作。
    class kedro.io.CachedDataSet(dataset, version=None, copy_mode=None)

  • kedro.io.Version(load, save):Versionnamedtuple 用于为版本化数据集提供加载和保存版本。
    classkedro.io.Version(load, save)

  •     异常

    • kedro.io.DataSetAlreadyExistsErrorDataCatalog类引发,以防尝试添加 DataCatalog 中已存在的数据集。

    • kedro.io.DataSetError 数据集在输入/输出方法失败时由抽象数据集实现引发。

    • kedro.io.DataSetNotFoundErrorDataCatalog类在尝试使用不存在的数据集时引发。

    pipeline

    kedro.pipeline提供定义和执行数据驱动管道的功能。

        功能

    • kedro.pipeline.node:通过提供要调用的函数以及输入和/或输出的变量名称,在管道中创建节点。
      kedro.pipeline.node(func, inputs, outputs, *, name=None, tags=None, confirms=None, namespace=None)
    • kedro.pipeline.modular_pipeline.pipeline(pipe, *):从node节点和/或pipline管道的集合创建pipeline
      kedro.pipeline.modular_pipeline.pipeline(pipe, *, inputs=None, outputs=None, parameters=None, tags=None, namespace=None)

        类

    • Pipeline定义为object.Node的集合
      class kedro.pipeline.Pipeline(nodes, *, tags=None)
    • Node是一个辅助类,有助于将用户提供的函数作为 Kedro 管道的一部分运行所需的操作。
      class kedro.pipeline.node.Node(func, inputs, outputs, *, name=None, tags=None, confirms=None, namespace=None)

        异常

    • kedro.pipeline.modular_pipeline.ModularPipelineError:当未使用帮助程序适当调整和集成模块化管道时引发。

    runner

    kedro.runner提供了能够执行Pipeline实例的运行器。

        功能

    • run_node运行单个节点,其中包含来自目录的输入和输出。
      kedro.runner.run_node(node, catalog, hook_manager, is_async=False, session_id=None)

        类

    • AbstractRunner 是所有 Pipeline 运行器实现的基类。
      class kedro.runner.AbstractRunner(is_async=False)
    • ParallelRunner是一个AbstractRunner实例。
      class kedro.runner.ParallelRunner(max_workers=None, is_async=False)
    • SequentialRunner是一个AbstractRunner实例。
      class kedro.runner.SequentialRunner(is_async=False)[source]
    • ThreadRunner是一个AbstractRunner实现。
      class kedro.runner.ThreadRunner(max_workers=None, is_async=False)

    utils

        功能

    • load_obj:从给定路径中提取对象。
      kedro.utils.load_obj(obj_path, default_obj_path='')

    你可能感兴趣的:(python,开发语言)