如何快速从Google Cloud Datalab笔记本中获取数据?

Ric*_*ard 4 google-cloud-datalab

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

我这样做了:

writer = csv.writer(open('output.csv', 'wb'))
for row in rows:
    writer.writerow(row)
Run Code Online (Sandbox Code Playgroud)

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

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

import gcp
import gcp.storage as storage

// create CSV file? construct filepath? how?

mybucket = storage.Bucket(myfile)
mybucket.create()
Run Code Online (Sandbox Code Playgroud)

Ant*_*iou 10

至少有两个选择:

从Datalab本地下载文件

此选项似乎在当前的Datalab代码中不可用.我已经提交了Datalab 的拉取请求,可以解决您的问题.该修复程序允许用户使用Datalab界面编辑/下载非笔记本文件(*.ipynb).我可以使用pull请求中的修改从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
Run Code Online (Sandbox Code Playgroud)

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