没有名为'IPython'的模块在带有Apache Beam的GCP DataflowRunner上命名



我在Jupyter笔记本中设置了一个相当简单的Python Apache Beam管道,并希望将其部署到Dataflow运行器上。我对这三个都是新手!我使用Python 3和Apache Beam 2.27.0内核。

我的管道选项看起来像这样:

options.view_as(GoogleCloudOptions).project = 'inspired-studio-11111'
options.view_as(GoogleCloudOptions).job_name = 'Dataflow Test Job2' + jobid
options.view_as(GoogleCloudOptions).region = 'us-central1'
options.view_as(GoogleCloudOptions).staging_location = 'gs://bucket/staging'
options.view_as(GoogleCloudOptions).temp_location = 'gs://bucket/temp'
options.view_as(SetupOptions).save_main_session = True

管道在笔记本中运行良好,并与GCP存储交互。当我将其设置为在GCP数据流运行器上运行并运行它时,我始终得到以下异常:

来自worker的错误消息:Traceback(最近的调用最后一次):文件"/usr/local/lib/python3.7/site-packages/dataflow_worker/batchworker.py", 771行,在run self._load_main_session(self.local_staging_directory)文件"/usr/local/lib/python3.7/site-packages/dataflow_worker/batchworker.py", 512行,在_load_main_session pickler.load_session(session_file)文件"/usr/local/lib/python3.7/site-packages/apache_beam/internal/pickler.py"在load_session中返回dill.load_session(file_path) File "/usr/local/lib/python3.7/site-packages/dill/_dill.py",第368行,在load_session module = unpickler.load() File "/usr/local/lib/python3.7/site-packages/dill/_dill.py",第472行,在load obj = StockUnpickler.load(self) File "/usr/local/lib/python3.7/site-packages/dill/_dill.py",第462行,在find_class中返回StockUnpickler。find_class(self, module, name) ModuleNotFoundError: No module named 'IPython'

在我的笔记本中安装和导入python没有帮助。这需要在GCP VM的某个地方配置吗?

这个错误通常是由使用save_main_session=True选项引起的。请参阅在使用Apache Beam笔记本启动Dataflow作业时处理名称错误,以讨论确保worker在运行时具有正确代码的其他方法。

相关内容

  • 没有找到相关文章

最新更新