Tengo un process_csv_entries invocable de python que procesa las entradas del archivo csv. Quiero que mi tarea se complete con éxito solo si todas las entradas se procesaron correctamente. La tarea debería fallar de lo contrario
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 parece completarse con éxito independientemente del valor devuelto. ¿Cómo obligo a que falle la tarea de PythonOperator?
genera una excepción cuando cumple con la condición de error (en su caso: cuando el archivo no se analiza correctamente)
raise ValueError('File not parsed completely/correctly')generar un tipo de error relevante con un mensaje adecuado
Sí, AirflowException , esto hará que la tarea pase inmediatamente al estado de falla.
from airflow import AirflowException
ValueError se puede usar para fallar y reintentar.
AirflowFailException ahora está disponible para hacer que la tarea falle sin reintentos