4

我只想快速从 Google Cloud Datalab 笔记本中获取一些输出数据,最好是作为一次性 CSV 文件。

我已经这样做了:

writer = csv.writer(open('output.csv', 'wb'))
for row in rows:
    writer.writerow(row)

这会写入一个本地文件,但是我无法在浏览器中打开它,或者(查看如何)从 Cloud Datalab 下载它。

如何快速将我的数据获取为 CSV 文件?我想也许我必须使用存储 API 并编写它?我发现文档有点难以理解,我有这样的东西:

import gcp
import gcp.storage as storage

// create CSV file? construct filepath? how?

mybucket = storage.Bucket(myfile)
mybucket.create()
4

5 回答 5

10

至少有2个选项:

从 Datalab 本地下载文件

此选项在当前 Datalab 代码中似乎不可用。我已提交 Datalab 的拉取请求,可能会解决您的问题。该修复允许用户使用 Datalab 界面编辑/下载不是笔记本 (*.ipynb) 的文件。我能够使用拉取请求中的修改从 Datalab 下载/编辑文本文件。

将文件发送到 Google Cloud 中的存储分区

以下链接可能有助于编写代码以使用 Storage API 将文件传输到 Google Cloud 中的存储分区。

这是一个工作示例:

from datalab.context import Context
import datalab.storage as storage

sample_bucket_name = Context.default().project_id + '-datalab-example'
sample_bucket_path = 'gs://' + sample_bucket_name

sample_bucket = storage.Bucket(sample_bucket_name)

# Create storage bucket if it does not exist
if not sample_bucket.exists():
    sample_bucket.create()

# Write an item to the storage bucket
sample_item = sample_bucket.item('stringtofile.txt')
sample_item.write_to('This is a string', 'text/plain')

# Another way to copy an item from Datalab to Storage Bucket
!gsutil cp 'someotherfile.txt' sample_bucket_path

复制项目后,点击此处查看 Google Cloud 存储桶中的项目

于 2016-03-05T19:20:59.893 回答
0

你在说多少数据?我假设这不是 BigQuery 表,因为我们有相应的 API。

对于存储 API,将存储桶视为文件夹。您需要在 Bucket 中创建一个 Item。如果您将数据作为字符串分配给 Python 变量,则可以使用 Item (write_to) 上的 API。

如果您像使用 output.csv 一样写入文件,则该文件位于运行 Datalab 的 Docker 容器中。这意味着它是暂时的,并且会在容器关闭时消失。但是,它同时可以访问,您可以使用 %%bash 单元魔法将其发送到其他目的地,例如 curl。

于 2016-03-02T00:17:47.673 回答
0

我找到了一种将 csv 文件从 datalab notebook 写入存储桶的更简单方法。

    %storage write --object "gs://pathtodata/data.csv" --variable data

这里的“数据”是您笔记本中的数据框!

于 2017-03-10T04:54:50.857 回答
0

使用 datalab 中提供的 ungit 工具将文件提交到您的 Google 源存储库,然后使用 gcloud 命令将该存储库克隆到您的本地计算机上:

C:\\gcloud source repos clone datalab-notebooks --project=your-vm-instance-name
于 2018-05-29T18:56:04.350 回答
0

正如上面有人发布的:

!gsutil cp 'someotherfile.txt' sample_bucket_path

为我完成了这项工作。将文件从 Datalab 获取到 Google 云存储中。

于 2018-09-12T19:51:49.343 回答