Kedro 与 Jupyter 笔记本:在 Notebook 中加载 Catalog、Context、Pipelines 与 Session

发布时间:2026/10/15 6:15:25

Kedro 与 Jupyter 笔记本:在 Notebook 中加载 Catalog、Context、Pipelines 与 Session Kedro 与 Jupyter 笔记本在 Notebook 中加载 Catalog、Context、Pipelines 与 Session【免费下载链接】kedroKedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.项目地址: https://gitcode.com/GitHub_Trending/ke/kedro本指南讲解如何将 Jupyter 笔记本接入 Kedro 项目让笔记本直接访问项目中的catalog、context、pipelines和session四个核心变量并利用%reload_kedro、%load_node、%run_viz等行魔法line magic完成数据探索、节点隔离调试与管道可视化。读完本文你将能够在 Jupyter Notebook、JupyterLab、IPython 终端乃至 Databricks、Google Colab 等 IPython 兼容环境中自由探索和调试 Kedro 项目。准备工作创建一个带 Viz 的示例项目本文以spaceflights项目为例对应spaceflight-pandas-vizstarter你可以使用其他 starter或直接在你已有的 Kedro 项目中实践。kedro new -n spaceflights --toolsviz --exampleyes-n spaceflights指定项目名称可自定义--toolsviz为项目集成 Kedro-Viz 可视化工具后续%run_viz依赖它--exampleyes生成包含示例管道companies/reviews/shuttles 数据处理的完整项目。kedro new的更多选项参见 Create a new Kedro Project。方式一用kedro jupyter notebook启动项目笔记本进入项目目录并启动 Jupytercd spaceflights kedro jupyter notebook首次运行新项目时终端会询问是否加入使用情况分析输入y或n后浏览器自动打开 Jupyter 页面其中列出了项目文件夹。在New下拉菜单中选择Kedro (iris)内核创建新笔记本建议保存在项目的notebooks目录下Kedro (iris) 内核下的新笔记本kedro jupyter notebook背后做了什么从源码看该命令在 jupyter.py 中实现核心流程如下校验notebook与ipykernel可导入并校验项目设置调用_create_kernel()创建或替换名为kedro_package_name的自定义内核显示名称为Kedro (package_name)若指定了--env设置环境变量KEDRO_ENV以--MultiKernelManager.default_kernel_namekedro_package_name启动 Jupyter。_create_kernel()jupyter.py会生成一个内核规范kernel specLinux 下位于~/.local/share/jupyter/kernels/kedro_package_name/其kernel.json的argv末尾追加--ext kedro.ipython从而在每次连接该内核时自动加载 Kedro IPython 扩展。加载扩展后见 load_ipython_extension以下项目变量即注入笔记本作用域变量类型说明catalogkedro.io.DataCatalog包含项目全部数据集的 Data Catalog 实例是context.catalog的快捷方式contextkedro.framework.context.KedroContext提供对 Kedro 库组件的访问的项目上下文pipelinesdict[str, Pipeline]在 pipeline_registry.py 中注册的管道字典sessionkedro.framework.session.session.KedroSession编排一次管道运行的 Kedro 会话变量注入的实际逻辑位于 reload_kedro()通过bootstrap_project引导项目、configure_project配置项目后创建会话与上下文最终以get_ipython().push(...)将四个变量推入笔记本命名空间。若笔记本中访问不到这些变量可能是配置文件格式错误或缺少依赖完整错误信息会显示在启动kedro jupyter notebook的终端或运行%load_ext kedro.ipython的单元格中。方式二在任意 IPython 环境用kedro.ipython扩展catalog、context、pipelines、session同样可在 Databricks 笔记本、Google Colab 等 IPython 兼容环境中使用。它不依赖 Jupyter 服务端适合无法启动本地 Jupyter 的场景。通过%load_ext显式加载扩展In [1]: %load_ext kedro.ipython如果你在 Kedro 项目目录之外启动交互环境需要再用一条行魔法指定项目根目录让 Kedro 能够加载上述四个变量In [2]: %reload_kedro project_root扩展会记住项目路径之后的%reload_kedro无需再传路径In [1]: %load_ext kedro.ipython In [2]: %reload_kedro project_root In [3]: %reload_kedro从源码看扩展加载时会注册%reload_kedro与%load_node两个行魔法并尝试从当前工作目录向上查找 Kedro 项目若找不到会提示Make sure you run %reload_kedro project_rootload_ipython_extension。路径解析逻辑_resolve_project_pathkedro/ipython/init.py依次尝试显式传入的路径 → 本地命名空间中的context.project_path→ 在当前目录向上查找.kedro项目标记。在笔记本中探索 Kedro 项目探索catalog查看、搜索与加载数据集catalog提供keys()、load()、save()等方法对应 kedro.io.DataCatalog 的 API。列出所有数据集名称catalog.keys()输出以 spaceflights 示例项目为例[ companies, reviews, shuttles, preprocessed_companies, preprocessed_shuttles, model_input_table, regressor, metrics, companies_columns, shuttle_passenger_capacity_plot_exp, shuttle_passenger_capacity_plot_go, dummy_confusion_matrix, parameters, params:model_options, params:model_options.test_size, params:model_options.random_state, params:model_options.features ]用正则搜索数据集记不清数据集全名时可用catalog.filter()传入正则表达式catalog.filter(pre*)输出[preprocessed_companies, preprocessed_shuttles]加载数据集catalog.load(shuttles)输出示例加载时会打印INFO日志并返回 pandas DataFrame[06/05/24 12:50:17] INFO Loading data from reviews (CSVDataset)... Out[1]: shuttle_id review_scores_rating review_scores_comfort ... review_scores_price number_of_reviews reviews_per_month 0 45163 91.0 10.0 ... 9.0 26 0.77 1 49438 96.0 10.0 ... 9.0 61 0.62 2 10750 97.0 10.0 ... 10.0 467 4.66 3 4146 95.0 10.0 ... 9.0 318 3.22加载参数parameters是MemoryDataset返回参数字典catalog.load(parameters)输出INFO Loading data from parameters (MemoryDataset)... { model_options: { test_size: 0.2, random_state: 3, features: [ engines, passenger_capacity, crew, d_check_complete, moon_clearance_complete, iata_approved, company_rating, review_scores_rating ] } }若启用了数据集版本管理可加载指定版本例如catalog.load(preprocessed_shuttles, version2024-06-05T15.08.09.255Z)。探索context访问组件与项目元数据context.project_path输出示例路径随用户名和项目位置变化PosixPath(/Users/username/kedro_projects/spaceflights)context可访问 Kedro 的库组件和项目元数据完整属性与方法见 kedro.framework.context.KedroContext API 文档。探索pipelines查看注册管道与节点pipelines是包含项目已注册管道的字典注册入口为src/package_name/pipeline_registry.py中的register_pipelines函数pipelines输出{__default__: Pipeline([ Node(create_confusion_matrix, companies, dummy_confusion_matrix, None), Node(preprocess_companies, companies, [preprocessed_companies, companies_columns], preprocess_companies_node), Node(preprocess_shuttles, shuttles, preprocessed_shuttles, preprocess_shuttles_node), ...查看管道全部输出数据集pipelines[__default__].all_outputs()输出{ X_train, regressor, shuttle_passenger_capacity_plot_exp, y_test, model_input_table, y_train, X_test, metrics, companies_columns, preprocessed_shuttles, preprocessed_companies, shuttle_passenger_capacity_plot_go, dummy_confusion_matrix }探索session在笔记本中运行管道session.run()不带参数时按顺序运行__default__管道等同于在终端执行kedro runsession.run()session.run支持的参数参数名接受类型说明tagsIterable[str]仅用带有这些标签的节点构造管道节点包含任一标签即被纳入runnerAbstractRunnerKedro 运行器实例可为 kedro.runner.ParallelRunner 等node_namesIterable[str]运行指定名称的节点from_nodesIterable[str]以这些节点名作为运行的起点to_nodesIterable[str]以这些节点名作为运行的终点from_inputsIterable[str]以这些数据集名作为运行的起点to_outputsIterable[str]以这些数据集名作为运行的终点load_versionsDict[str, str]数据集名到特定版本时间戳的映射用于加载版本化数据集pipeline_namestr要运行的模块化管道名必须是register_pipelines返回值之一每个会话与一次运行一一对应一个会话只能执行一次成功的运行。如需多次运行先执行%reload_kedro获得新的session。Kedro 行魔法行魔法是交互会话中完成任务的简洁命令。Kedro 提供多个行魔法简化交互环境中的项目操作。%reload_kedro重载 Kedro 变量修改 Data Catalog 后用%reload_kedro重载catalog、context、pipelines和session无需重启内核。它接受可选关键字参数env和params。例如使用prod配置环境%reload_kedro --envprod从源码看magic_reload_kedro其完整签名包括path位置参数可选项目根目录缺省时使用之前设置的路径-e/--envKedro 配置环境名默认localENV_HELP--params以逗号分隔、keyvalue形式的额外参数会传给上下文初始化器例如--params foobar bazPARAMS_ARG_HELP--conf-source项目配置文件所在目录CONF_SOURCE_HELP。更详细说明可运行%reload_kedro?查看。%load_node把节点加载为单元格实验性功能支持 Jupyter Notebook7.0、JupyterLab、IPython 与 VS Code Notebook。遇到问题或想提建议可参见对应 GitHub issuekedro-org/kedro#3580。在 Jupyter Notebook 中使用还需满足最低版本要求ipylab1.0.0 notebook7.0.0使用%load_node需满足两个前提节点必须有名字关于带名节点的创建见 如何创建带名称的节点 相关章节节点的输入必须被持久化。默认 Kedro 将数据保存在内存中需先在 Data Catalog 中声明数据集 以持久化数据。节点名在管道内必须唯一。若未显式命名Kedro 会用函数名、输入与输出的组合自动生成。执行后行魔法会生成多个单元格依次包含节点输入加载xxx catalog.load(dataset)、import 语句、节点函数体及函数调用其实现见 _load_node可通过 _prepare_function_body 看到基于 AST 的依赖提取逻辑自动把同一模块中的辅助函数一并纳入%load_node my-node-name节点的输入必须显式声明在项目 catalog 中。运行生成的单元格即可在隔离环境中复现节点的行为用于探索输入输出或配合下文调试流程排查问题。%run_viz在笔记本中可视化管道若项目尚未安装 Kedro-Viz先在项目目录的终端中执行pip install kedro-viz。然后在单元格中运行%run_viz即可在笔记本内直接展示管道的交互式可视化在笔记本中调试 Kedro 项目用%debug启动交互式调试器使用内置的%debug行魔法启动交互式调试器。把它放在单行语句前即可进入调试模式逐步执行也可用--breakpoint或-b指定断点若在报错后不带参数运行则会加载堆栈并开始调试。%debug在错误发生后运行的流程加载最后一次未处理异常的堆栈跟踪程序停在异常发生处打开交互式 shell用户可在堆栈中导航。随后可检查表达式与参数的值或添加断点。典型调试工作流以某个节点运行失败为例查看日志找到失败节点名例如split_data_node在笔记本中运行%load_node 失败节点名将问题节点内容加载为单元格运行生成的单元格在隔离环境中检查该节点的行为若节点报错使用%debug在笔记本中启动交互式调试会话。%load_node仅支持 Jupyter Notebook7.0与 JupyterLab。在其他交互环境中请手动从项目文件复制相关代码填充节点然后从第 2 步继续。用%pdb自动进入调试器也可用%pdb行魔法让异常发生时自动启动调试器执行前运行%pdb 1或%pdb on开启%pdb 0或%pdb off关闭。ipdb 常用调试命令命令说明list显示当前在文件中的位置h(elp)显示命令列表或查询某个命令的帮助q(uit)退出调试器并结束程序c(ontinue)退出调试器继续运行程序n(ext)执行到下一步enter重复上一条命令p(rint)打印变量s(tep)进入子程序r(eturn)从子程序返回b(reak)插入断点a(rgs)打印当前函数的参数列表更多信息可在调试器中用help命令查看或参考 ipdb 官方文档。高级用法内核管理每个 Kedro 项目都有自己的 Jupyter 内核因此可在同一个 Jupyter 实例中通过切换内核在不同 Kedro 项目间切换。为保证内核始终指向正确的 Python 可执行文件若已存在同名kedro_package_name内核它会被替换见 jupyter.py 中install(userTrue, kernel_name...)的覆盖行为。可用jupyter kernelspec系列命令管理内核例如移除内核jupyter kernelspec remove kernel_nameIPython、JupyterLab 与其他 Jupyter 客户端连接 IPython shell 到 Kedro 项目内核kedro ipython该命令会启动一个已加载扩展的 IPython shell等价于ipython --ext kedro.ipython。在 spaceflights 教程中首次出现过该用法见 测试 Kedro 能加载数据。类似地以下命令创建自动加载扩展的自定义 Jupyter 内核并启动 JupyterLabkedro jupyter lab任何其他 Jupyter 客户端都可连接 Kedro 项目内核例如 Qt Consolejupyter qtconsole --kernelspaceflights这会自动加载 Kedro IPython 扩展并支持内嵌图形等图形化功能补充阅读完整的交互式示例教程可参考 notebooks_tutorial.md项目上下文与会话机制见 extend/session.md 与 kedro.framework.sessionData Catalog 的完整使用见 catalog-data/data_catalog.md相关实现源码与测试kedro/ipython/init.py、kedro/framework/cli/jupyter.py、tests/ipython/test_ipython.py。【免费下载链接】kedroKedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.项目地址: https://gitcode.com/GitHub_Trending/ke/kedro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/14 5:58:27

Java字符串乱码检测原理与实现

1. 项目概述:Java字符串乱码检测工具在Java开发中,处理字符串编码问题就像在迷宫里寻找出口——稍有不慎就会陷入乱码的泥潭。我最近在代码审查中发现,超过60%的字符处理bug都源于对乱码字符串的错误假设。这个工具类正是为了解决这个痛点而生…

2026/10/15 6:13:14

TensorFlow 1.x模型保存恢复不重定义结构实战指南

1. 项目概述:为什么“保存-恢复模型不重定义结构”是TensorFlow 1.x时代的关键生存技能在2017—2019年TensorFlow 1.x主流应用期,我带过三个不同方向的落地项目:某高校实验室的遥感图像语义分割系统、某工业质检公司的缺陷检测轻量模型、还有…

2026/10/15 6:13:14

从零搭建TCP客户端与服务端:Socket编程实战与避坑指南

兄弟们,聊点网络编程里最实在的东西。你可能看过各种高大上的分布式架构、微服务、容器编排,但说句掏心窝子的话,这些东西的底层,基本都跑不脱最基础的TCP/IP。数据从一个进程飞到另一个进程,靠的就是创建socket、建立…

2026/10/15 6:13:14

国产算力适配层开源:大模型推理部署的底层工程实践

1. 这次开源的到底是什么,为什么说它不是模型先把结论摆在前面:这次放出来的东西,不是又一个能陪你聊天的对话模型,也不是某个榜单上刷分的推理大模型,而是一整套让大模型能在国产算力芯片上真正跑起来、跑得稳、跑得高…

2026/10/15 6:13:14

作文课件PPT制作全流程:从目标拆解到AI工具实战

备课时间紧张的时候,作文课件最容易变成“素材搬运工具”:网上找个模板,把题目、范文、好词好句往里一塞,页数不少,但上课时学生抬头率低、写得还是不会写。我整理过一套自己做“作文课件PPT”的完整流程,从…

2026/10/15 6:13:14

MiniMax API 调用教程:兼容 OpenAI 写法

照着 MiniMax 官方示例改了半天,请求还是 401,或者返回一串 gateway_error,这类问题多半出在 base_url 和模型调用名没对上。你手里可能已经有一把能用的 API Key,也装了 openai 包,但第一个调用就是跑不通。这篇教程不…

2026/10/15 6:08:14

杰理BLE功耗从185uA压到18uA:可复现的降功耗实战笔记

简介:这份PDF资料聚焦杰理BLE芯片的功耗数据与降功耗方法,面向正在开发蓝牙低功耗产品、遇到功耗降不下来或无法满足客户续航要求的嵌入式工程师。内容以AC6321为例,系统梳理powerdown、poweroff、sniff三种功耗模式的特点与唤醒机制&#xf…

2026/10/14 11:31:03

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/14 17:41:07

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/14 2:32:55

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/15 0:02:22

防关联浏览器哪个好?三款产品实测差异解析

新手做多店铺,最纠结的就是防关联浏览器选哪个。飞跨、网易、站斧这三款被问得最多,先给结论:要一体化省心、长期便宜,选站斧;要网易招牌和稳,选网易;预算紧做东南亚 Lazada,选飞跨。…

2026/10/15 0:02:22

影刀RPA深度实战:大模型Fine-tuning定制RPA专用Prompt与指令生成

影刀RPA深度实战:大模型Fine-tuning定制RPA专用Prompt与指令生成 一、技术背景 大模型(LLM)在通用场景下表现强大,但当我们将 GPT-4 或 Qwen 直接用于生成影刀RPA操作指令和 XPath 定位时,准确率通常只有 40%-60%。原因…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑