Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join now60 Days of Data Days! Live and on-demand sessions, challenges, study groups and more! And it's all FREE!. Join now. Learn more
Hi,
I am connecting to a Lakehouse from a Notebook within Microsoft Fabric. I run an analysis on a dataframe, e.g. ydata_profiler using a PySpark, that produces an inline report of my data. Great, but...
How do I export or share that report with business users, quickly? The profile report is interactive so a pdf won't suffice. I want to know in general what the best way is of sharing data science progress with stakeholders is, outside of the Fabric Notebook (that is not PowerBI which is incredibly slow, clunky and adds too many extra steps).
In RStudio, I would use a Shiny app. I tried looking at the streamlit python package, but I can't get it to run in Fabric notebook (I might be doing something wrong however).
Is there something that will work directly from a Fabric Notebook?
Thanks
Hi @data_quantum,
Fabric Notebooks are mainly designed for analysis and development, so they are not always the easiest interface for sharing interactive results directly with business users.
For a ydata-profiling report, one practical option is to export it as an interactive HTML file:
from ydata_profiling import ProfileReport
profile = ProfileReport(df)
profile.to_file("/lakehouse/default/Files/profile_report.html")
The HTML report keeps most of the interactivity and can then be downloaded from the Lakehouse and shared through Teams, SharePoint, OneDrive, or another internal location.
For a more reusable solution, a common architecture is:
Fabric Notebook → OneLake/Lakehouse → External application
The notebook performs the analysis and stores the processed data or report output in OneLake. A lightweight application built with Streamlit, Dash, Flask, or another web framework can then read that output and present it to stakeholders.
Streamlit generally needs to run in a separate application-hosting environment rather than directly inside the Fabric Notebook session. Separating the analytics layer from the presentation layer also makes the solution easier to maintain and scale.
For quick sharing, the HTML export is usually the simplest option. For recurring stakeholder access, an external web application connected to OneLake is the better long-term approach.
Hi @data_quantum,
That's an interesting question and one that many data science teams encounter when moving from experimentation to stakeholder communication.
While Fabric Notebooks are excellent for development and analysis, they're not always the most convenient way to share interactive outputs with business users. A common approach is to save analysis results or HTML reports (such as profiling reports) to OneLake and then share them through an appropriate delivery mechanism, depending on the audience. This keeps the notebook focused on development while making outputs more accessible.
Another option is to package reusable analyses into applications or services outside the notebook environment when business users need a more interactive experience. As Microsoft Fabric continues to evolve, it will be interesting to see even tighter integration for sharing interactive notebook outputs directly with non-technical stakeholders.
Thank you for raising this topic. It highlights an important aspect of the data science lifecycle—bridging the gap between technical analysis and business collaboration.
Hi @User,
Currently, Microsoft Fabric Notebooks are primarily designed for interactive development and collaboration rather than hosting interactive web applications. As a result, packages such as Streamlit or Shiny-like applications aren't natively supported for interactive deployment directly from a Fabric Notebook.
Some alternatives you could consider are:
Save the profiling report (for example, from ydata-profiling) as an HTML file and store it in OneLake. Stakeholders can then access or download the report without needing access to the notebook.
If you need a fully interactive application, deploy it externally using Streamlit, Dash, or Azure App Service, and have your Fabric Notebook generate or refresh the underlying data.
For collaborative analytics, use Power BI when business users need governed dashboards and reporting, even though it may not be ideal for exploratory data profiling.
If your organization uses Microsoft Fabric alongside Azure services, consider integrating with Azure Machine Learning or other web-hosting platforms for sharing interactive data science outputs.
For more information:
Microsoft Fabric Notebooks: https://learn.microsoft.com/fabric/data-engineering/how-to-use-notebook
ydata-profiling: https://docs.profiling.ydata.ai/latest/
Streamlit documentation: https://docs.streamlit.io/
Could you also clarify:
Is your goal to share interactive profiling reports (such as ydata-profiling), or more general data science outputs?
Do your business users have access to the Fabric workspace, or do they need to access the reports externally?
Would hosting a lightweight web application outside Fabric be an acceptable solution for your organization?
These details will help determine the most suitable approach for sharing your notebook outputs.
💡 Helpful? Give a Kudos 👍 — keep the community growing.✅ Solved your issue? Mark this as the Accepted Solution ✔️Best regards, |
Hello @data_quantum
If you have access to Databricks, which is a first-party Microsoft offering, you can use Databricks Apps to host a Streamlit/Dash/Flask app that can connect to your Fabric Lakehouse SQL endpoint.
Here's the link to Microsoft docs
Key concepts in Databricks Apps - Azure Databricks | Microsoft Learn
Hope this helps - please appreciate by leaving a Kudos or accepting it as a Solution to help others!
What Doesn’t Work Well
Best Ways to Share Interactive Reports Outside Fabric
1. Export Data + Host Streamlit Locally
Since Streamlit doesn’t run inside Fabric, you can:
This gives you full interactivity and control.
2. Use HTML Export from Profiling Tools
If you're using ydata-profiling, you can export the report as an HTML file:
profile = ProfileReport(df) profile.to_file("report.html")
Then share the HTML file via email, Teams, or a shared drive. It’s interactive and lightweight—no need for Streamlit.
3. Fabric + OneLake + External App
Hi @anilgavhane,
Thank you for sharing such a comprehensive overview of the available options.
I particularly appreciate the comparison of different approaches and the explanation of their trade-offs. Using HTML export from ydata-profiling is a simple and effective way to share interactive reports, while the approach of combining OneLake with an external application such as Streamlit or Dash provides a scalable architecture for organizations that need richer stakeholder experiences.
Your recommendation to separate the analytics layer from the presentation layer is especially valuable, as it improves flexibility, maintainability, and collaboration without tying business users to the notebook environment.
Thank you again for taking the time to share these practical solutions. Your guidance will be helpful for anyone looking to share interactive data science outputs more effectively outside Microsoft Fabric.
Yeah, so the best move is probs exporting your notebook output to OneDrive or Azure Blob Storage and just sharing access from there. You can also save stuff as CSV or Parquet files and plug it into Power BI or whatever dashboard tool you like. Fabric doesn’t let you share live notebook progress yet (rip), but this workaround works fine. Honestly, hoping Microsoft adds a built-in way to share soon would make life way easier for collabs and updates. You can also visit my website.
Yeah, so the best move is probs exporting your notebook output to OneDrive or Azure Blob Storage and just sharing access from there. You can also save stuff as CSV or Parquet files and plug it into Power BI or whatever dashboard tool you like. Fabric doesn’t let you share live notebook progress yet (rip), but this workaround works fine. Honestly, hoping Microsoft adds a built-in way to share soon would make life way easier for collabs and updates. You can also visit my website.
Current workflow is:
Read Lakehouse table into a Spark datafram in a Notebook
Run any analysis (e.g. a ProfileReport from ydata_profiler package)
Write the profile report to an html file in the Lakehouse
Use OneLake file explorer in windows explorer to view the html file in a browser (requires installing OneLake file explorer (https://learn.microsoft.com/en-us/fabric/onelake/onelake-file-explorer))
Kinda works for now
| User | Count |
|---|---|
| 5 | |
| 5 | |
| 5 | |
| 2 | |
| 2 |
| User | Count |
|---|---|
| 25 | |
| 23 | |
| 13 | |
| 13 | |
| 4 |