使用Notebook在线开发和调试
本章节详细介绍使用Notebook开发任务的操作指导。
前提条件
已创建Notebook实例并且已启用(状态为运行中)。创建Notebook实例的操作请参见创建个人运行环境。
约束条件
- 一个用户在当前工作空间最多能创建10个Notebook。
- 当前仅支持MRS Spark、Fabric SQL两种数据类型。
- 用户只能使用自己创建的Notebook实例进行Notebook作业开发。
- 仅当前工作空间管理员、具有DAYU Administrator或者Tenant Administrator权限的用户、用户自定义角色中拥有“新建”的用户,才可以绑定计算资源。
- 如果用户同时拥有系统预置角色和用户自定义角色,其权限取两种角色权限的并集。
- 绑定MRS Spark计算引擎需要先创建MRS版本集群,支持MRS Spark 3.3.1及以上的版本。
- Notebook作业调度对接MRS Spark时,不支持基于个人的细粒度数据权限管控。
绑定计算资源
如果之前管理Notebook资源时已经绑定了计算资源,可以进入Notebook开发界面后,在代码开发的右上角,单击默认引擎Python(不依赖计算资源),在下拉列表中选择绑定的计算资源。
如果之前没有绑定计算资源,可按照如下步骤绑定计算资源。您也可以在管理中心页面绑定计算资源,具体请参见绑定/解绑计算资源。
- 登录DataArts Studio管理控制台。
详情请参考访问DataArts Studio实例控制台。
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 在项目目录或Notebook环境目录中双击要编辑的Notebook文件。
- 进入Notebook开发界面后,在代码开发的右上角,单击默认引擎Python(不依赖计算资源),或者单击某个其他计算引擎。
- 在弹出的下拉框中,单击“绑定计算资源”,配置相关参数。
表1 绑定计算资源 参数
描述
资源类型
- MRS Spark
- Fabric SQL
资源名称
输入资源名称。
MRS集群
“资源类型”选择“MRS Spark”时,才需配置。
选择MRS集群。购买MRS集群的操作请参见购买MRS集群。MRS集群创建完成后,可以在“现有集群”中查看MRS集群的基本信息。
计算资源工作空间
“资源类型”选择“Fabric SQL”时,才需配置。
工作空间是Fabric的基本单元,请选择Fabric SQL的所属工作空间。
创建资源空间请进入EI领域的数智融合计算服务 DataArtsFabric控制台,创建工作空间。创建工作空间的操作请参见创建工作空间。
端点
“资源类型”选择“Fabric SQL”时,才需配置。
执行SQL任务时必需的计算资源。
选择了计算资源工作空间后,再选择端点。创建SQL端点的操作请参见创建SQL端点。
- 单击“确定”,绑定计算资源成功。
绑定的计算资源可以在管理Notebook资源章节进行查看。同时,您也可以在管理Notebook资源章节绑定计算资源。
查看依赖包
在开发过程中,如果用户想要了解当前运行环境中用哪些依赖包,可在数据开发主界面,单击右侧的侧边栏的“依赖包”,在打开的列表中查看环境中已有的依赖包。
环境中没有的包则需要在代码中通过代码语句进行安装。
开发与调试Notebook
- 进入数据开发主界面,在项目目录或Notebook环境目录中双击要编辑的Notebook文件。
- 进入Notebook开发界面后,输入开发代码并进行调试。您可以在右上角选择所需要的计算引擎。
- 系统默认为Python引擎,不依赖计算资源。
- 同时,支持设置以下两种不同类型的计算引擎:Fabric SQL、MRS Spark。单击默认的Python引擎,可以看到已创建的计算引擎的信息,可以选择您所需要的计算引擎。一个Notebook文件当前仅支持一个计算引擎,选择计算引擎以后,该Notebook文件下的所有单元格使用这一个计算引擎。
- 不同的计算引擎,需要绑定所需的计算资源。绑定计算资源请参见绑定计算资源。
- 魔法命令支持如下命令格式:%mrs_spark,%%spark,%aura_frame。
- 可选:输入Markdown格式内容。Notebook支持Markdown基础语法、KaTex 公式和 Mermaid 图表渲染。
- 单击“保存”,保存已开发的内容。
- 单击
,选择“运行单元格”,会运行整个单元格的代码,运行完成后,显示运行成功,查看执行结果。如果代码执行失败,可以在执行结果中查看可能失败的原因。 %spark info
图1 执行结果示例1
%%spark spark.sql("SHOW TABLES").show()图2 执行结果示例2
a = "123111" * 2 print(a) a = "12311" * 3 print(a) a = "123eee" * 5 print(a) a = "123aa1122" * 2 print(a) a = "123absg3wut235456&&&" * 2 print(a)
图3 执行结果示例3
图4 执行结果示例4
%%spark config { "driverMemory": "2G", "driverCores": 1, "executorMemory": "2G", "executorCores": 1, "conf": { "spark.pyspark.python": "./temp_env/bin/python", "spark.yarn.dist.archives":"obs://notebook-dataarts/python_env/pyspark_conda_env.tar.gz#temp_env", "spark.jars": "obs://notebook-dataarts/mrs_jars/spark-utils-1.0-SNAPSHOT.jar" } }图5 执行结果示例5
%%spark import pandas print(pandas.__version__)
打包一个带pandas依赖的包,能够引用pandas。
图6 执行结果示例6
%mrs_spark
图7 执行结果示例7
%%spark import my_script print(my_script.add_numbers(10, 20)) rdd = sc.parallelize(["apple", "banana", "cherry"]) result = rdd.map(my_script.format_string).collect() for item in result: print(item)图8 执行结果示例8
- 每个开发单元格右上方会显示Python,单击“Python”在下拉菜单中选择“Markdown”可切换单元格类型。
- 支持全部运行(运行全部单元格)、保存(保存全部单元格)、提交到项目目录、新建单元格(新建一个单元格)、清除运行结果(清除全部单元格)、更多(重启内核、关闭内核)等操作。右侧开发代码最上方的功能按钮都是针对整个 Notebook文件进行批量操作的。
- 支持复制单元格、粘贴单元格、剪切单元格、在上方添加一个单元格、在下方添加一个单元格、上移、下移、清除运行结果等操作。
- Notebook支持对非Markdown单元格内的部分代码运行调试。选择部分代码,单击
,选择“运行选中文本”,可以运行选中的代码。还支持以下两种方式运行代码。 - 选择“运行上方所有单元格”,可以运行当前单元格上方所有非Markdown单元格。
- 选择“运行此单元格及以下”,可以运行此单元格及以下所有的非Markdown单元格。
:删除单元格,删除当前的单元格。
:单元格窗口最大化。窗口最大化后,仅能看见当前的单元格。
:单元格窗口最小化。窗口最小化后,能看到所有的单元格。
,窗口最大化后,单击
可以查看上一个单元格。
,窗口最大化后,单击
可以查看下一个单元格。


