2017-12-15 5 views
0

오랜 검색 후에 여러 파일에 걸쳐있는 Dataflow/Beam 파이프 라인 예제를 찾지 못했습니다. 빔 문서는 suggest a file structure ("다중 파일 종속성"섹션 아래)에서 제공하지만 줄리엣 예제는 사실상 a single code/source 파일 (그리고이 파일을 호출하는 main file)에 있습니다.Apache Beam/Dataflow의 여러 파일에 걸친 파이프 라인 코드

juliaset/__init__.py 
juliaset/juliaset.py # actual code 
juliaset/some_conf.py 
__init__.py 
juliaset_main.py 
setup.py 

가 지금은 juliaset/juliaset.py에서 import .some_conf하려는 로컬로 실행하면 작동하지만 데이터 흐름

INFO:root:2017-12-15T17:34:09.333Z: JOB_MESSAGE_ERROR: (8cdf3e226105b90a): Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 706, in run 
    self._load_main_session(self.local_staging_directory) 
    File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 446, in _load_main_session 
    pickler.load_session(session_file) 
    File "/usr/local/lib/python2.7/dist-packages/apache_beam/internal/pickler.py", line 247, in load_session 
    return dill.load_session(file_path) 
    File "/usr/local/lib/python2.7/dist-packages/dill/dill.py", line 363, in load_session 
    module = unpickler.load() 
    File "/usr/lib/python2.7/pickle.py", line 858, in load 
    dispatch[key](self) 
    File "/usr/lib/python2.7/pickle.py", line 1133, in load_reduce 
    value = func(*args) 
    File "/usr/local/lib/python2.7/dist-packages/dill/dill.py", line 767, in _import_module 
    return getattr(__import__(module, None, None, [obj]), obj) 
ImportError: No module named package_name.juliaset.some_conf 

(A)에 실행할 때 나에게 오류를 제공하십시오 Juliaset의 예를 바탕으로, 나는 유사한 파일 구조를 필요 전체 작업 예제는 대단히 감사하겠습니다! from juliaset.juliaset import SomeClass

처럼 모듈을 가져

import setuptools 

setuptools.setup(
    name='My Project', 
    version='1.0', 
    install_requires=[], 
    packages=setuptools.find_packages(), 
) 

그리고 당신은 파이썬 스크립트를 호출 할 때,

합니다 (평없이) python -m juliaset_main를 사용

+0

나는이 질문에 대해 명확하지 않다. 당신은 실제 사례를 요구하고 있습니다. 당신이 말하는 Juliaset은 하나입니다. 아니면 당신을 위해 일하지 않는다고 말하는 겁니까? 주 파일의 doc 단위로 호출하고 있습니까? (--setup_file'을 포함하여) – de1

+0

Juliaset의 예제는 그대로 작동하지만 소스 코드는 본질적으로 모두 하나의 파일 (juliaset/juliaset.py)에 있습니다. juliaset/src1.py 및 juliaset/src2.py와 같은 여러 소스 파일에 걸쳐 프로그램을 분할하고 싶습니다. 또한 juliaset 예제는 apache_beam 패키지 안에 내장되어 있습니다 (따라서 import는 "apache_beam.examples.complete.juliaset.juliaset import juliaset"과 유사합니다). 그래서 많은 소스 파일, 다른 프로젝트/패키지에 포함되어 있지 않은 "독립 실행 형"버전의 전체 예제를 요구했습니다. –

+0

@Mattias Arro 어떻게 해결 했습니까? –

답변

0

당신은 당신의 setup.py이 같은 구조를 포함 확인할 수 있습니다 이미이 방법을 시도했는지 확신 할 수 없지만 확실한지는 확실하지 않습니다.

+0

응답 해 주셔서 감사합니다. 네, 그런 설치 파일을 사용하고 당신이했던 것처럼 작동 시켰습니다. 모든 작업은 로컬에서 이루어 지지만 Dataflow에서는 실패합니다. –

+0

'--setup_file' 파이프 라인 인수를 통해 설정 파일을 사용하도록 지시해야합니다. – de1