web-dev-qa-db-fra.com

Erreur lors de la transmission de métadonnées à DataProcClustercreateOperator

J'utilise la version de flux d'air: 2.1.4 + compositeur et j'ai un DAG où j'ai défini le DataProcClustercreateOperator comme celui-ci:

create_dataproc =  dataproc_operator.DataprocClusterCreateOperator(
  task_id='create_dataproc',
  cluster_name='dataproc-cluster-demo-{{ ds_nodash }}',
  num_workers=2,
  region='us-east4',
  zone='us-east4-a',
  subnetwork_uri='projects/example',
  internal_ip_only=True,
  tags=['allow-iap-ssh'],
  init_actions_uris=['gs://goog-dataproc-initialization-actions-us-east4/connectors/connectors.sh'],
  metadata=[('spark-bigquery-connector-url','gs://spark-lib/bigquery/spark-2.4-bigquery-0.23.1-preview.jar')],
  labels=dict(equipo='dm',ambiente='dev',etapa='datapreparation',producto='x',modelo='x'),
  master_machine_type='n1-standard-1',
  worker_machine_type='n1-standard-1',
  image_version='1.5-debian10'
  )

J'ai passé les métadonnées comme une séquence de tuples que j'ai lu ici , en utilisant la dicte ne fonctionne pas.

De plus, les métadonnées ne sont pas rendues dans le cluster_config lorsque je vérifie le journal.

L'erreur dans le journal enregistré dans le godet est la suivante: "Echo 'Erreur: aucune des versions de connecteur ou des URL n'est spécifiée" "

Comment puis-je transmettre le paramètre de métadonnées à cet opérateur et le faire fonctionner?

2
Neon

Cette documentation proposée m'a aidé à le faire fonctionner

https://user-images.githubusercontent.com/16856802/140657172-440f-4d1a-882d-14c47541aaa1.png

Tout d'abord, vous devez importer cette bibliothèque:

from airflow.providers.google.cloud.operators.dataproc import ClusterGenerator

Puis définir la tâche comme s'il est expliqué dans l'image, par exemple.

    path = f"gs://goog-dataproc-initialization-actions-us-east4/connectors/connectors.sh"

    CLUSTER_CONFIG =  ClusterGenerator(
        project_id='project-id',
        zone='us-east4-a',
        master_machine_type='n1-standard-1',
        worker_machine_type='n1-standard-1',
        num_workers=2,
        init_actions_uris=[
            path
        ],
        image_version='1.5-debian10',
        metadata={'spark-bigquery-connector-url':'gs://spark-lib/bigquery/spark-2.4-bigquery-0.23.1-preview.jar'},
    ).make()

    create_dataproc = dataproc_operator.DataprocClusterCreateOperator(
        task_id='create_dataproc_cluster',
        cluster_name='dataproc-cluster-demo-{{ ds_nodash }}',
        project_id='project-id',
        region='us-east4',
        cluster_config=CLUSTER_CONFIG,
    )
1
Neon