How to use Microsoft Fabric notebooks
The Microsoft Fabric notebook is a primary code item for developing Apache Spark jobs and machine learning experiments. It's a web-based interactive surface used by data scientists and data engineers to write code benefiting from rich visualizations and Markdown text. Data engineers write code for data ingestion, data preparation, and data transformation. Data scientists also use notebooks to build machine learning solutions, including creating experiments and models, model tracking, and deployment.
With a Fabric notebook, you can:
- Get started with zero set-up effort.
- Easily explore and process data with intuitive low-code experience.
- Keep data secure with built-in enterprise security features.
- Analyze data across raw formats (CSV, txt, JSON, etc.), processed file formats (parquet, Delta Lake, etc.), using powerful Spark capabilities.
- Be productive with enhanced authoring capabilities and built-in data visualization.
This article describes how to use notebooks in data science and data engineering experiences.
You can either create a new notebook or import an existing notebook.
Create a new notebook
Like other standard Fabric item creation processes, you can easily create a new notebook from the Fabric Data Engineering homepage, the workspace New option, or the Create Hub.
Import existing notebooks
You can import one or more existing notebooks from your local computer to a Fabric workspace from the Data Engineering or the Data Science homepage. Fabric notebooks recognize the standard Jupyter Notebook .ipynb files, and source files like .py, .scala, and .sql, and create new notebook items accordingly.
Export a notebook
You can export your notebook to other standard formats. Synapse notebook can be exported into:
- The standard notebook file (.ipynb) that is used for Jupyter notebooks.
- An HTML file (.html) that can be opened from a browser directly.
- A Python file (.py).
- A Latex file (.tex).
Save a notebook
In Fabric, a notebook will by default save automatically after you open and edit it; you don't need to worry about losing code changes. You can also use Save a copy to clone another copy in the current workspace or to another workspace.
If you prefer to save a notebook manually, you can switch to the Manual save option to have a local branch of your notebook item, and then use Save or CTRL+s to save your changes.
You can also switch to manual save mode by selecting Edit -> Save options -> Manual. To turn on a local branch of your notebook then save it manually, select Save or use the Ctrl+s keyboard shortcut.
Connect lakehouses and notebooks
Fabric notebooks now support close interactions with lakehouses; you can easily add a new or existing lakehouse from the Lakehouse explorer.
You can navigate to different lakehouses in the Lakehouse explorer and set one lakehouse as the default by pinning it. Your default is then mounted to the runtime working directory, and you can read or write to the default lakehouse using a local path.
You must restart the session after pinning a new lakehouse or renaming the default lakehouse.
Add or remove a lakehouse
Selecting the X icon beside a lakehouse name removes it from the notebook tab, but the lakehouse item still exists in the workspace.
Select Add lakehouse to add more lakehouses to the notebook, either by adding an existing one or creating a new lakehouse.
Explore a lakehouse file
The subfolder and files under the Tables and Files section of the Lake view appear in a content area between the lakehouse list and the notebook content. Select different folders in the Tables and Files section to refresh the content area.
Folder and file operations
If you select a file (.csv, .parquet, .txt, .jpg, .png, etc.) with a right mouse click, you can use the Spark or Pandas API to load the data. A new code cell is generated and inserted beneath the focus cell.
You can easily copy a path with a different format from the select file or folder and use the corresponding path in your code.
The notebook resource explorer provides a Unix-like file system to help you manage your folders and files. It offers a writeable file system space where you can store small-sized files, such as code modules, semantic models, and images. You can easily access them with code in the notebook as if you were working with your local file system.
This built-in folder is a system predefined folder for each notebook instance. It preserves up to 500MB storage to store the dependencies of the current notebook. These are the key capabilities of notebook resources:
- You can use common operations such as create/delete, upload/download, drag/drop, rename, duplicate, and search through the UI.
- You can use relative paths like
builtin/YourData.txtfor quick exploration. The
mssparkutils.nbResPathmethod helps you compose the full path.
- You can easily move your validated data to a lakehouse via the Write to lakehouse option. Fabric has embedded rich code snippets for common file types to help you quickly get started.
- These resources are also available for use in the Reference notebook run case via
- Currently, Fabric supports uploading certain file types through the UI, including, .py, .whl, .jar, .txt, .json, .yml, .xml, .csv, .html, .png, .jpg, and .xlsx files. You can write to the built-in folder with file types that are not in the list via code, however, Fabric notebooks don't support generating code snippets on unsupported file types.
- Each file size needs to be less than 50MB, and the built-in folder allows up to 100 file/folder instances in total.
- When using
mssparkutils.notebook.run(), use the
mssparkutils.nbResPathcommand to access the target notebook resource. The relative path “builtin/” will always point to the root notebook’s built-in folder.
Collaborate in a notebook
The Fabric notebook is a collaborative item that supports multiple users editing the same notebook.
When you open a notebook, you enter the co-editing mode by default, and every notebook edit is automatically saved. If your colleagues open the same notebook at the same time, you see their profile, run output, cursor indicator, selection indicator, and editing trace. By using the collaboration features, you can easily accomplish pair programming, remote debugging, and tutoring scenarios.
Share a notebook
Sharing a notebook is a convenient way for you to collaborate with team members. Authorized workspace roles can view or edit/run notebooks by default. You can share a notebook with specified permissions granted.
Select Share on the notebook toolbar.
Select the corresponding category of people who can view this notebook. You can choose Share, Edit, or Run permissions for the recipients.
After you select Apply, you can either send the notebook directly or copy the link to others. Recipients can then open the notebook with the corresponding view granted by their permission level.
To further manage your notebook permissions, select Workspace item list > More options, and then select Manage permissions. From that screen, you can update the existing notebook access and permissions.
Comment a code cell
Commenting is another useful feature for collaborative scenarios. Currently, Fabric supports adding cell-level comments.
Select the Comments button on the notebook toolbar or cell comment indicator to open the Comments pane.
Select code in the code cell, select New in the Comments pane, add comments, and then select Post comment to save.
If you need them, find the Edit comment, Resolve thread, and Delete thread options by selecting the More option next to your comment.
Switch notebook mode
Fabric notebooks support two modes that you can easily switch between: Editing mode and Viewing mode.
- Editing mode: You can edit and run the cells and collaborate with others on the notebook.
- Viewing mode: You can only view the cell content, output, and comments of the notebook. All the operations that make changes to the notebook are disabled.