Data Engineering(Pipeline, Hadoop...)/Airflow

[Airflow] 워크플로우 - R Script 실행

dtstory 2023. 1. 2. 20:00

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