inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Airflow 마스터 클래스

Python Operator에서 Xcom 사용

xcom_pull 메서드 사용 질문

333

방효석

작성한 질문수 6

0

안녕하세요

강의에서 xcom_pull 메서드 사용시 task_ids를 지정하지 않으면 가장 마지막 태스크의 키값을 가져온다고 하셨는데요, 실습코드를 돌려보니 먼저 실행되었던 태스크의 밸류값을 리턴합니다.

from airflow import DAG
import pendulum
from airflow.decorators import task

with DAG(
    dag_id="dags_python_with_xcom_eg1",
    schedule="30 6 * * *",
    start_date=pendulum.datetime(2024, 3, 1, tz="Asia/Seoul"),
    catchup=False,
) as dag:

    @task(task_id="python_xcom_push_task1")
    def xcom_push1(**kwargs):
        ti = kwargs["ti"]
        ti.xcom_push(key="result1", value="value_1")
        ti.xcom_push(key="result2", value=[1, 2, 3, 4])

    @task(task_id="python_xcom_push_task2")
    def xcom_push2(**kwargs):
        ti = kwargs["ti"]
        ti.xcom_push(key="reuslt1", value="value_2")
        ti.xcom_push(key="reuslt2", value=[1, 2, 3])

    @task(task_id="python_xcom_pull_task")
    def xcom_pull(**kwargs):
        ti = kwargs["ti"]
        value1 = ti.xcom_pull(key="result2")  # [1, 2, 3]
        value2 = ti.xcom_pull(
            key="result1", task_ids="python_xcom_push_task1"
        )  # value_1
        print(value1)
        print(value2)

    xcom_push1() >> xcom_push2() >> xcom_pull()

dag는 위와 같이 작성했고요, [1, 2, 3]이 반환될 것으로 기대했던 부분에서 [1, 2, 3, 4]가 반환되어서 혹시 제가 코드를 잘못 작성한건지 궁금해서 여쭤봅니다

 

python 데이터-엔지니어링 airflow

답변 2

1

방효석

앗 이런 결국 오타 문제였군요...;;

답변 감사합니다!

0

김현진

원래 오타는 본인은 잘 안보여요 ^^

그래도 효석님의 이런저런 시도가 참 좋습니다.

강의 내용만 따라하기보다, 이렇게 하면 어뗗게 되지? 저렇게 해보면 어떻게 나오지? 같은걸 스스로 해볼 때 더 많이 늘어요.

화이팅입니다

1

김현진

안녕하세요 방효석님!

두 번째 task에 오타가 있습니다.

key=reuslt1 --> resutl1

key=reuslt2 --> result2

로 수정해서 돌려보시겠어요?

 

pykrx 회원제 전환으로 인한 실습 불가

0

99

2

수료증 발급

0

78

3

에러 발생 관련 질문드립니다.

0

75

2

vscode 작업화면에 오류가 발생하지 않습니다.

0

67

2

plugins 폴더 생성

0

73

2

WSL에서 git push 가 안되요 ㅠ

0

107

2

chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.

0

63

2

github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ

0

697

2

설치중인데 venv를 꼭 써야할까요?

0

119

2

설치 버전 관련 질문입니다.

0

65

1

우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?

0

60

1

DAG 만들기 중 airflow 패키지 로드 에러

0

104

2

3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!

0

94

3

task_id 사용법이 뭔가 바뀐 것 같습니다.

0

75

3

email operator 오류 관련

0

62

2

plugins 폴더 관련

0

91

2

bash operator 관련 문의입니다

0

77

3

스케쥴러 - DAG 파싱 부하 줄이는 과정 질문

0

78

2

Dags refresh 주기 관련 질문

0

121

2

wsl 관련 질문입니다.!

0

72

2

macOS에서 docker 설치

0

92

2

템플릿 변수에 대한 오류

0

57

2

custom_image 디렉토리 문의드립니다.

0

50

2

ETL 인터뷰 관련 문의

0

99

2