finish_bundle_outputs File "/Users/ㅁㅁㅁㅁ/PycharmProjects/apachebeam-dataflow-project/src/main.py", line 91, in finish_bundle NameError: name 'beam' is not defined During handling of the above exception, another exception occurred: 

 

Dataflow를 실행하는 과정에서 에러가 발생하였다. 

beam 이라고 정의되어 있는것이 없다고 나오는데 실제로 코드상에서는 import 한 상황이다. (import apache_beam as beam)

 

무엇이 이슈일까? 

 

stackoverflow 를 찾아보니 다음 해결책이 있었다. 

 

1. apache-beam library 가 제대로 설치가 안되었다. (오래되었거나, 잘못된 라이브러리일 가능성)

이 부분에 있어서 pip uninstall apache-beam 을 진행하였고 pip3 install apache-beam 했다. 

-> Cloud 에서 dataflow 를 실행하면 Name Error 가 발생했다. (동일한 에러)

 

2. Local 에서 외부 import 된것이 cloud dataflow 환경에서 먹히지 않는다. 따라서 class 안에 import 를 두어야 한다. 

1
2
class SplitWords(beam.DoFn):
  from apache_beam as beam
cs

-> def 함수 아래에 import apache_beam as beam 작성 후 class 입력시 실행시키면 된다. 

def 안에 import 하고 class 생성

 

staging 된 dataflow task 목록들...

삭제...

dataflow 실행 시킬 때 중간 결과값 나오기전에 stop 하면 pycharm이 먹통이 된다..

*ref : https://stackoverflow.com/questions/59138545/nameerror-name-pvalue-is-not-defined