BigData / Apache Airflow Interview Questions
What is the difference between PythonOperator and PythonVirtualenvOperator?
Both operators run Python callables, but differ in execution environment:
- PythonOperator — runs the callable in the same Python environment as the Airflow worker. All packages available to the worker are accessible.
- PythonVirtualenvOperator — creates a temporary virtual environment with specified requirements, runs the callable inside it, then destroys the venv. Useful when a task needs package versions that conflict with the worker environment.
from airflow.operators.python import PythonVirtualenvOperator run = PythonVirtualenvOperator( task_id='isolated_task', python_callable=my_func, requirements=['pandas==1.5.0', 'numpy'], system_site_packages=False )
When should you prefer PythonVirtualenvOperator over PythonOperator?
More Related questions...