code: def donwload_parquetize_upload_dag(
      dag,
      url_template,
      local_csv_path_template,
      local_parquet_path_template,
      gcs_path_template,
  ):
      with dag:
          download_dataset_task = BashOperator(
              task_id="download_dataset_task",
              bash_command=f"curl -sSLf {url_template} > {local_csv_path_template}",
          )
  
          format_to_parquet_task = PythonOperator(
              task_id="format_to_parquet_task",
              python_callable=format_to_parquet,
              op_kwargs={
                  "src_file": local_csv_path_template,
                  "dest_file": local_parquet_path_template,
              },
          )
  
          local_to_gcs_task = PythonOperator(
              task_id="local_to_gcs_task",
              python_callable=upload_to_gcs,
              op_kwargs={
                  "bucket": BUCKET,
                  "object_name": gcs_path_template,
                  "local_file": local_parquet_path_template,
              },
          )
  
          rm_task = BashOperator(
              task_id="rm_task",
              bash_command=f"rm {local_csv_path_template} {local_parquet_path_template}",
          )
  
          (
              download_dataset_task
              >> format_to_parquet_task
              >> local_to_gcs_task
              >> rm_task
          )
  
file_path: data-engineering-zoomcamp/cohorts/2022/week_2_data_ingestion/homework/solution.py
imports: import os
  import logging
  from datetime import datetime
  from airflow import DAG
  from airflow.utils.dates import days_ago
  from airflow.operators.bash import BashOperator
  from airflow.operators.python import PythonOperator
  from google.cloud import storage
  import pyarrow.csv
  import pyarrow.parquet
label_desc: Use image node_id 3 for calling a global function with example usage: donwload_parquetize_upload_dag(dag, url_template, local_csv_path_template, local_parquet_path_template, gcs_path_template) without return types