ML引擎:最简单的办法GCS文件到机器

时间:2019-02-02 05:53:32

标签: python google-cloud-storage google-cloud-ml

我正在提交一个ML Engine培训工作,该工作将调用我的一些Python代码。我想从Google云端存储中下载我的特定文件,以便在我的代码中使用。

做到这一点的最佳方法是什么?我可以想到一些选择:

,想到使用唯一的选择python的subprocess运行gsutil cp gs://project/my_file。但是,我不知道ML Engine实例是否默认设置了gsutil。他们吗?

有没有下载存储在GCS编程文件更简单的方法?我已经通过了文档看了,但没有看到这个用例解决。

谢谢!

1 个答案:

答案 0 :(得分:0)

在您的培训师程序中,您可以使用TensorFlow从GCS直接读取文件:

from tensorflow.python.lib.io import file_io
with file_io.FileIO('gs://bucket/file.csv', 'r') as f:
  ...

当然,您可以立即读写:

from tensorflow.python.lib.io import file_io
with file_io.FileIO('gs://bucket/file.csv', 'r') as infile:
  with file_io.FileIO('/tmp/file.csv', 'w') as outfile:
     outfile.write(infile.read())

第二个最佳选择是使用Python客户端库(确保将google-cloud-storage指定为依赖项):

   import google.cloud.storage as gcs
   bucket = gcs.Client().get_bucket('bucketname')
   blob = bucket.blob('/some/file.csv')
   dest = '/tmp/file.csv'
   blob.download_to_filename(dest)