Как создать исключение для выхода из Synapse Apache Spark notebook

#apache-spark #pyspark #azure-synapse

Вопрос:

Я пытаюсь выполнить два действия в случае сценария сбоя.

  1. Запишите результаты таблицы в один файл в parquet.
  2. Выйдите из блокнота.

Примите меры на основе полученных результатов

 if validation_result["success"]:  print("Successful") else:  (  spark.sql("Select * from notify_error")  .coalesce(1)  .write.format("delta")  .mode("overwrite")  .save(lakePath)  )  

Как вы можете видеть из вышесказанного, я пытаюсь создать единую таблицу, используя coalesce(1) . Чтобы выйти из записной книжки в Синапсе, я полагаю, что код:

 mssparkutils.notebook.exit(returnValue)  

Но я не знаю, где разместить код в моем коде выше.

Есть какие-нибудь мысли?

Ответ №1:

Можете ли вы просто обойтись raise ValueError , например

 %%pyspark  notebookName = mssparkutils.runtime.context.get('notebookname') errorString = f"error in notebook '{notebookName}'"  raiseError = True  if raiseError:  raise ValueError(errorString)  

Комментарии:

1. wBob, спасибо, что вернулся. Я действительно не понимаю, как соотнести ваш код с моими требованиями

2. Я думал, что появление ошибки приведет к выходу ноутбука, но, возможно, я неправильно понял. Посмотрим, что скажут другие.

3. Привет, wBob, есть вероятность, что если вы неправильно поняли, то, вероятно, другие здесь неправильно поймут. В принципе, мне нужно, чтобы произошли две вещи, если if validation_result["success"]: 1. Сохраните данные в «путь к озеру». 2. выйдите из записной книжки. Я полагаю, что код для выхода из записной книжки-это mssparkutils.notebook.exit() когда я ввожу mssparkutils.notebook.exit() код, запрашивающий позиционный аргумент

4. Боб, я изменил предложенный тобой код и заставил его работать. Спасибо

5. О, хорошие новости, спасибо за подтверждение. Не стесняйтесь просто озвучить мой ответ, предоставить свой собственный ответ и отметить его как ответ, если вы считаете, что он более точно отражает ваше решение, или даже отредактировать его — я не возражаю!