J'ai un python appelable process_csv_entries
qui traite les entrées du fichier csv. Je veux que ma tâche se termine avec succès uniquement si toutes les entrées ont été traitées avec succès. Sinon, la tâche devrait échouer
def process_csv_entries(csv_file):
# Boolean
file_completely_parsed = <call_to_module_to_parse_csv>
return not file_completely_parsed
CSV_FILE=<Sets path to csv file>
t1 = PythonOperator(dag=dag,
task_id='parse_csv_completely',
python_operator=process_csv_entries,
op_args=[CSV_FILE])
t1 semble se terminer avec succès quelle que soit la valeur renvoyée. Comment forcer l'échec de la tâche PythonOperator?
déclencher une exception lorsque vous remplissez la condition d'erreur (dans votre cas: lorsque le fichier n'est pas analysé avec succès)
raise ValueError('File not parsed completely/correctly')
augmenter le type d'erreur pertinent avec un message approprié
Oui, augmentez AirflowException
, la tâche passera immédiatement à l'état d'échec.
from airflow import AirflowException
ValueError
peut être utilisé pour échouer et réessayer.