运行flowers-sample预处理时出现数据流错误

时间:2017-03-30 11:43:00

标签: google-cloud-dataflow google-cloud-ml google-cloud-ml-engine

我正在尝试使用flowers-sample中包含的预处理脚本(我看到它今天已被修改,并且不再被弃用)。 但是,在安装所需的软件包之后,管道将失败并输出这些错误日志

(caeb3b0a930d0a6): Workflow failed. Causes: (caeb3b0a930d587): S01:Save to disk/Write/WriteImpl/InitializeWrite failed.

(d50acb0dd46c44c6): Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 666, in run
    self._load_main_session(self.local_staging_directory)
  File "/usr/local/lib/python2.7/dist-packages/dataflow_worker/batchworker.py", line 411, in _load_main_session
    pickler.load_session(session_file)
  File "/usr/local/lib/python2.7/dist-packages/apache_beam/internal/pickler.py", line 230, 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 1090, in load_global
    klass = self.find_class(module, name)
  File "/usr/local/lib/python2.7/dist-packages/dill/dill.py", line 423, in find_class
    return StockUnpickler.find_class(self, module, name)
  File "/usr/lib/python2.7/pickle.py", line 1124, in find_class
    __import__(module)
ImportError: No module named util

我从两个不同的Google Compute Engines运行这个过程时遇到了同样的错误,我已经安装了requirements.txt中列出的软件包。

是否引用了培训师目录中的util.py文件,否则,我是否应该安装其他软件包以避免此错误?

1 个答案:

答案 0 :(得分:1)

我找到了一种解决方法:在preprocess.py中,我已将[{1}}包的导入替换为util中包含的get_cloud_project()定义。

我不知道问题是否是由数据流上使用的本地包引起的。我认为不是这种情况,因为在管道定义中没有调用util.py,但这是我第一次使用数据流。

如果其他人知道是否可以在不修改代码的情况下使代码工作,请告诉我!