dags 내에서 r script를 실행을 편하게 하기 위해, sh 파일을 작성을 우선적으로 해야한다.
1. run_r.sh 작성
#!/usr/bin/env Rscript
args = commandArgs(trailingOnly=TRUE)
setwd("[나의 경로]")
source(args[1])
[나의 경로] 에 default directory로 지정하고 싶은 경로를 나의 분석환경에 맞게 설정만 해주고, 원하는 폴더에 해당 파일을 넣어 둔다.
2. my_dags.py 작성
import os
# Get current directory
cwd = os.getcwd()
with DAG(dag_id="my_dags", default_args=default_args, schedule_interval='50 22 3,20 * *') as dag :
trigger = BashOperator(
task_id='trigger',
bash_command=f'{cwd}run_r.sh {cwd}src/test_rscript.R',
dag=dag,
)
파이썬 모듈 dags 작성시, python operator를 사용하는 것과는 달리, Bash operator를 이용해서, R script를 실행해보자.
필자의 경우엔, 파이썬 실행 디폴트 경로 내에 run_r.sh 파일을 위치해 두었고 해당 경로를 cwd라는 변수로 잡아 두었다.
따라서 위와 같은 코드를 삽입한 후에, workflow를 실행하게 되면, test_rscript.R 이라는 소스코드가 실행되는 것을 확인할 수 있다.
728x90
'Data Engineering(Pipeline, Hadoop...) > Airflow' 카테고리의 다른 글
[Airflow] Schedule Timezone을 한국시간(KST) 으로 설정하기 (0) | 2022.12.09 |
---|---|
[Airflow] Dags 관리(예제 Dags 삭제 및 Dags 경로 설정) (0) | 2022.11.24 |
[Airflow] Devops 환경 구축 (R+Python+Airflow+ssh) (0) | 2022.11.23 |
Airflow + Python 스크립트 활용 DAG 구성 (0) | 2022.10.21 |