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

发布时间:2026/11/10 22:08:02

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/11/7 21:22:41

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

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

2026/11/11 3:57:45

电工证丢了怎样补证?上岗必备的补证流程全在这

电工证丢了怎样补证?上岗必备的补证流程全在这 工地太忙根本没时间复习考试,这话说得实在,不少电工朋友都经历过。尤其是像你这样的商丘在职建筑工人,日常忙于赶工期、抢进度,根本腾不出时间来准备考试,更别说证件丢了怎么补办。今天咱们就来聊聊【电工…

2026/11/11 3:57:45

有特种作业证才能上岗找工作?特种作业操作证项目a多久拿证全解析

有特种作业证才能上岗找工作?特种作业操作证项目a多久拿证全解析 你是不是刚进工地就被要求交特种作业证?是不是看到招聘信息里写着“持证上岗”就慌了?别急,今天就来聊聊【特种作业操作证项目a】,这个证到底值不值得考、多久能拿下来,以及它在你找工…

2026/11/11 3:57:45

考电工证需要哪些科目网上查询最全攻略

考电工证需要哪些科目网上查询最全攻略 怕考不过白交培训费,别让钱打水漂,先搞懂考电工证需要哪些科目。现在网上查询越来越方便,但信息真假混杂,稍有不慎就容易被坑。特别是南阳卧龙区中小施工企业负责人,想给员工安排考证,又怕浪费时间和钱,今天就把…

2026/11/11 3:57:45

延津哪办电工证多久拿证,工地太忙也能轻松拿证的秘诀

延津哪办电工证多久拿证,工地太忙也能轻松拿证的秘诀 工地太忙根本没时间复习考试,你是不是也经常这样想?特别是像电工这种高需求、高门槛的工种,考个证都得花不少时间精力。但好消息是, 延津哪办电工证…

2026/11/11 3:52:44

小白考电工证流程图,值不值得考?别怕考不过白交培训费

小白考电工证流程图,值不值得考?别怕考不过白交培训费 怕考不过白交培训费?别急,这波我给你讲清楚。电工证是很多建筑行业从业者想考的证之一,但很多人担心流程复杂、考试难、培训费贵,甚至考不过就亏了。其实,只要你按流程来,掌握好关键点,考过不是…

2026/11/10 8:12:38

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/11 0:02:26

考低压电工证通过率考试真题与备考技巧

低压电工证通过率高不高?学历不高也能考,值不值得考? 你是不是总听说电工证能帮你找高薪工作,但又担心自己学历不够,考不上?其实,低压电工证考试门槛并没有你想象中那么高,关键是方法对不对。这篇文章就告诉你, 考低压电工证通过率到底有多高 ,…

2026/11/11 0:02:26

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名 你是不是也和我一样,刚毕业就听说低压电工证学时必须达标才能上岗?可一打听,发现报名机构五花八门,价格参差不齐, 不知道去哪报名怕被中介坑…

2026/11/10 20:08:15

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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