Forum Discussion

data_quantum's avatar
data_quantum
New Member
2 years ago

Sharing data progress outside Fabric Notebook

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

8 Replies

  • 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

     

  • 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.

  • What Doesn’t Work Well

    • PDFs: Static, not suitable for interactive profiling reports.
    • Power BI: Powerful but often overkill for quick sharing, and adds friction.
    • Streamlit inside Fabric: Not currently supported natively within Fabric notebooks due to environment limitations.

     

    Best Ways to Share Interactive Reports Outside Fabric

    1. Export Data + Host Streamlit Locally

    Since Streamlit doesn’t run inside Fabric, you can:

    • Export your processed data (e.g. as CSV or Parquet) from the notebook.
    • Build a local Streamlit app on your laptop using ydata-profiling or pandas-profiling.
    • Share the app via:
    • Internal web server (e.g. localhost or intranet)
    • Streamlit Cloud (for public or semi-private sharing)
    • Docker container (for reproducibility)

    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

    • Store the processed data in OneLake.
    • Build a lightweight web app (Streamlit, Dash, Flask) outside Fabric that reads from OneLake.
    • This separates compute from presentation and avoids tying the report to your notebook session.

    • binitafulpagare's avatar
      binitafulpagare
      Kudo Collector

      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.

  • 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 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.