#apache-spark #pyspark #azure-synapse
Вопрос:
Я пытаюсь выполнить два действия в случае сценария сбоя.
- Запишите результаты таблицы в один файл в parquet.
- Выйдите из блокнота.
Примите меры на основе полученных результатов
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. О, хорошие новости, спасибо за подтверждение. Не стесняйтесь просто озвучить мой ответ, предоставить свой собственный ответ и отметить его как ответ, если вы считаете, что он более точно отражает ваше решение, или даже отредактировать его — я не возражаю!