16

I Tried sys.exit(0)(Python code) and dbutils.notebook.exit() on Databricks notebook. But both the option didn't work. Please suggest any other way to stop the execution of code after a specific cell in Databricks notebook.

sizo_abe
  • 411
  • 1
  • 3
  • 13
  • raise exception? – Alex Ott Feb 19 '21 at 10:18
  • @AlexOtt I Have tried this , but that is also not working. try: if(df.shape[0]==0 and df_1.shape[0]==0 and df_2.shape[0]==0): print('Stop the excution here') dbutils.notebook.exit('stop') else: pass except: print('ex') – sizo_abe Feb 19 '21 at 10:39
  • 1
    `dbuilts.notebook.exit()` is used when the notebook is called from another notebook, not when it's executed interactively. Just use `raise Exception("exit")` instead of it... – Alex Ott Feb 19 '21 at 10:52
  • @AlexOtt Can you provide the code instead. That will be helpful. – sizo_abe Feb 19 '21 at 11:05
  • I wrote it - it's just having the `raise` – Alex Ott Feb 19 '21 at 14:00
  • @AlexOtt i tried this : if(df.shape[0]==0): raise Exception("exception"). But That didn't work. I believe that is what you were saying. – sizo_abe Feb 19 '21 at 14:40

2 Answers2

32

dbutils.notebook.exit() does not work because you need to put the string argument, it fails silently without it. To make it work you should write something like:

dbutils.notebook.exit("whatever reason to make it stop")
Robert
  • 321
  • 3
  • 3
  • 2
    while it is true that another answer shows the use of `.exit()`, what this answer adds is that if you do not pass a string argument, the call will fail silently. Perhaps this answer could have been a comment on the other answer. – hlongmore Sep 28 '21 at 19:35
7

Just use this. And click on run all cell button on Databricks notebook. If the condition is satisfied then execution will be stopped. Worked for me.

if (df.shape[0]==0): dbutils.notebook.exit('stop')

sizo_abe
  • 411
  • 1
  • 3
  • 13