云合成器中的curl命令BashOpertor

yhuiod9q  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(153)

我正在使用此链接中提到的教程-download_rocket_launches.py。因为我在Cloud Composer中运行此教程,所以我想输入本机路径,即/home/airflow/gcs/dags,但由于未找到错误路径而失败。
我可以给予什么路径来使此命令生效?下面是我尝试执行的任务-

download_launches = BashOperator(
    task_id="download_launches",
    bash_command="curl -o /tmp/launches.json -L 'https://ll.thespacedevs.com/2.0.0/launch/upcoming'",  # noqa: E501
    dag=dag,
)
58wvjzkj

58wvjzkj1#

这对我来说很有效:

import json
import pathlib

import airflow.utils.dates
import requests
import requests.exceptions as requests_exceptions
from airflow import DAG
from airflow.operators.bash import BashOperator
from airflow.operators.python import PythonOperator

dag = DAG(
    dag_id="download_rocket_launches",
    description="Download rocket pictures of recently launched rockets.",
    start_date=airflow.utils.dates.days_ago(14),
    schedule_interval="@daily",
)

download_launches = BashOperator(
    task_id="download_launches",
    bash_command="curl -o  /home/airflow/gcs/data/launches.json -L 'https://ll.thespacedevs.com/2.0.0/launch/upcoming' ",  # put space in between single quote and double quote 
    dag=dag,
)

download_launches

输出量:

关键是在bash命令末尾的单引号'和双引号"之间加空格。
此外,建议在绘制GCP文档中所述的输出文件时使用Data文件夹:
gs://存储桶名称/数据/起始位置/气流/gcs/数据:存储任务生成和使用的数据。此文件夹装载在所有工作节点上。

相关问题