11-17-2021 06:16 AM
Not sure it exists but maybe there is some trick to get directly from python code:
just working on some logger script shared between notebooks and it could make my life a bit easier 🙂
11-18-2021 08:24 AM
Hi @Hubert Dudek ,
The following command will print the path where your notebook is located. If you split the returned string and only select the last string, then you will be able to get the notebook name
notebook_name = dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
11-17-2021 11:57 AM
Hey there! Thanks for your question. We'll see what the community comes up with first. Thanks in advance for your patience!
11-18-2021 12:36 AM
I am sure there is a trick but I doubt it is the best way:
the actual notebooks store each cell as # COMMAND ------ and markdown as # MAGIC %md.
So you could fetch the actual notebook code and start rebuilding it in python with a loop/count over COMMAND or MAGIC.
But as I said: seems overkill. Databricks can parse it nicely so there has to be a way.
11-18-2021 01:06 AM
Maybe you can use displayHTML instead of markdown? Like that you actually have it as code:
displayHTML("insert text here").
It is not as clean as markdown though.
11-18-2021 03:35 AM
@Werner Stinckens I will experiment on that in few weeks using your ideas. I need it only when exception occur in notebook so maybe it will not be so big overkill. I will back to you.
11-18-2021 05:11 AM
you could also use the log analytics of your cloud provider.
For Azure f.e. we send all databricks logs to Log Analytics. I suppose on AWS/GCP there is also a similar thing.
(https://docs.microsoft.com/en-us/azure/databricks/administration-guide/account-settings/azure-diagnostic-logs)
Or send logs to some location which you can then parse with python
(https://docs.microsoft.com/en-us/azure/databricks/clusters/configure#cluster-log-delivery)
11-18-2021 08:24 AM
Hi @Hubert Dudek ,
The following command will print the path where your notebook is located. If you split the returned string and only select the last string, then you will be able to get the notebook name
notebook_name = dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
11-18-2021 08:40 AM
wow will test it tomorrow 🙂 haven't known about dbutils.notebook.entry_point
11-23-2021 04:01 PM
Did this helped you? if it did, could you mark it as best response?
11-24-2021 03:13 AM
haven't tested yet (you now tomorrow in dev world can be quite long time) but I've selected your answer as the best
11-24-2021 05:19 AM
@Hubert Dudek - If I haven't told you, you are awesome!
11-24-2021 05:20 AM
Thank you. You too 🙂
Thursday
I got the solution to work in terms of printing the notebook that I was running; however, what if you have notebook A that calls a function that prints the notebook name, and you run notebook B that %runs notebook A? I get the notebook B's name when I want notebook A's name. Any suggestions?
Join a Regional User Group to connect with local Databricks users. Events will be happening in your city, and you won’t want to miss the chance to attend and share knowledge.
If there isn’t a group near you, start one and help create a community that brings people together.
Request a New Group