
# 使用Notebook在线开发和调试
本章节详细介绍使用Notebook开发任务的操作指导。
#### 前提条件
已创建Notebook实例并且已启用（状态为运行中）。创建Notebook实例的操作请参见[创建Notebook实例](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1574.html)。
#### 约束条件
- 一个用户在当前工作空间最多能创建10个Notebook。
- 当前仅支持MRS Spark、Fabric SQL两种数据类型。
- 用户只能使用归属人为自己的Notebook实例进行Notebook作业开发。
 
#### 开发Notebook
1. 在数据开发主界面，单击右下角的Notebook实例名称，在页面可以看到所有的Notebook实例名称，单击所需要的Notebook实例名称，在数据开发页面中间栏的作业目录树下方，会显示Notebook环境目录树。 
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   Notebook环境目录仅用户自己可见。
   
   
2. 右键单击"我的文件"，单击"新建Notebook"，弹出"新建Notebook"界面。输入文件名称，选择Notebook保存路径。 
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   - 文件名称仅支持中英文、数字、中划线、下划线和点号。Notebook文件名称不能超过64个字符。
   
   - 保存路径默认我的文件。
   
   - 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002593663969.png)或者右键单击"我的文件"，可以创建文件夹，并在文件夹下，右键单击"新建Notebook"。
     - 文件夹名称仅支持中英文、数字、中划线和下划线。文件夹名称的总长度不能超过64个字符。
     
     - 文件所属路径 + 文件名称的总长度不能超过768个字节。
      
    
   图1新建Notebook   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002555148837.png "点击放大")
   
   
3. 单击"确定"，完成Notebook文件创建，同时打开Notebook开发界面。
4. 进入Notebook开发界面后，输入开发代码并进行调试。您可以在右上角选择所需要的计算引擎。 
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   - 系统默认为Python引擎，不依赖计算资源。
   
   - 同时，支持设置以下两种不同类型的计算引擎：Fabric SQL、MRS Spark。单击默认的Python引擎，可以看到已创建的计算引擎的信息，可以选择您所需要的计算引擎。一个Notebook文件当前仅支持一个计算引擎，选择计算引擎以后，该Notebook文件下的所有单元格使用这一个计算引擎。
   
   - 不同的计算引擎，需要绑定所需的计算资源。绑定计算资源请参见[绑定计算资源](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1576.html)。
   
   - 魔法命令支持如下命令格式：%mrs_spark，%%spark，%aura_frame。
    
   
   
5. **可选：** 输入Markdown格式内容。Notebook支持Markdown基础语法、KaTex 公式和 Mermaid 图表渲染。
   
   1. 单击"新建单元格"，创建一个新单元格。
   
   2. 在新建单元格中，单击右上角的"Python"，选择"Markdown"。
   
   3. 在单元格中输入内容。单击左上角的"显示预览"，可以在右侧实时看到预览效果。 单击单元格右上角的![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002678948327.png)，或在单元格外空白处单击鼠标左键，单元格中将自动切换为全览模式，此时在单元格中双击鼠标左键，可以切换到编辑模式中。
      
   
   
   
   
6. 单击"保存"，保存已开发的内容。
7. 单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002524151846.png)，选择"运行单元格"，会运行整个单元格的代码，运行完成后，显示运行成功，查看执行结果。如果代码执行失败，可以在执行结果中查看可能失败的原因。
   
   ```
   %spark info
   ```
   图2执行结果示例1   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002555175761.png "点击放大")
   ```
   %%spark
   spark.sql("SHOW TABLES").show()
   ```
   图3执行结果示例2   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002526577860.png "点击放大")
   ```
   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)
   ```
   图4执行结果示例3   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002557776931.png "点击放大")
   图5执行结果示例4   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002563452972.png "点击放大")
   ```
   %%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"
       }
   }
   ```
   图6执行结果示例5   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002608386813.png "点击放大")
   ```
   %%spark
   import pandas
   print(pandas.__version__)
   ```
   打包一个带pandas依赖的包，能够引用pandas。
   图7执行结果示例6   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002608387289.png "点击放大")
   ```
   %mrs_spark
   ```
   图8执行结果示例7   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002608388873.png "点击放大")
   ```
   %%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)
   ```
   图9执行结果示例8   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002578042624.png "点击放大")
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   - 每个开发单元格右上方会显示Python。
   
   - 支持全部运行（运行全部单元格）、保存（保存全部单元格）、提交到项目目录、新建单元格（新建一个单元格）、清除运行结果（清除全部单元格）、更多（重启内核、关闭内核）等操作。右侧开发代码最上方的功能按钮都是针对整个 Notebook文件进行批量操作的。
   
   - 支持复制单元格、粘贴单元格、剪切单元格、在上方添加一个单元格、在下方添加一个单元格、上移、下移、清除运行结果等操作。
   
   - Notebook支持对Python单元格内的部分代码运行调试。选择部分代码，单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002524175858.png)，选择"运行选中文本"，可以运行选中的代码。还支持以下两种方式运行代码。
     - 选择"运行上方所有单元格"，可以运行当前单元格上方所有Python单元格。
     
     - 选择"运行此单元格及以下"，可以运行此单元格及以下所有的Python单元格。
      
   
   - ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002524164296.png)：删除单元格，删除当前的单元格。
   
   - ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002524004324.png)：单元格窗口最大化。窗口最大化后，仅能看见当前的单元格。
   
   - ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002526541744.png)：单元格窗口最小化。窗口最小化后，能看到所有的单元格。
   
   - ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002555154241.png)，窗口最大化后，单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002555295737.png)可以查看上一个单元格。
   
   - ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002523994364.png)，窗口最大化后，单击![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002524015870.png)可以查看下一个单元格。
    
   
   
 
