相关疑难解决方法(0)

无法读取谷歌云存储桶上传的csv文件

目标 - 阅读在谷歌云存储桶上传的csv文件.

环境 - 在主节点上使用SSH实例运行Jupyter笔记本.在Jupyter笔记本上使用python试图访问上传到谷歌云存储桶的简单csv文件.

方法 -

第一种方法 - 编写一个简单的python程序

写下以下程序

import csv
f = open('gs://python_test_hm/train.csv' , 'rb' ) 
csv_f = csv.reader(f)
for row in csv_f
     print row
Run Code Online (Sandbox Code Playgroud)

结果 - 错误消息"没有这样的文件或目录"

第二种方法 - 使用gcloud Package尝试访问train.csv文件.示例代码如下所示.下面的代码不是实际的代码.我的代码版本中的Google云存储上的文件被称为"gs:///Filename.csv"结果 - 错误消息"没有此类文件或目录"

从CSV加载数据

import csv
from gcloud import bigquery
from gcloud.bigquery import SchemaField
client = bigquery.Client()
dataset = client.dataset('dataset_name')
dataset.create()  # API request

SCHEMA = [
    SchemaField('full_name', 'STRING', mode='required'),
    SchemaField('age', 'INTEGER', mode='required'),
 ]
table = dataset.table('table_name', SCHEMA)
table.create()

with open('csv_file', 'rb') as readable:
    table.upload_from_file( …
Run Code Online (Sandbox Code Playgroud)

python google-cloud-storage google-compute-engine google-cloud-platform jupyter-notebook

4
推荐指数
1
解决办法
6681
查看次数

编写 CSV 以存储在 Google Cloud Storage 中

背景:我正在我的 Python/AppEngine 项目中获取数据并创建一个 .tsv 文件,以便我可以使用 d3.js 创建图表。现在我正在为每个页面加载编写 CSV;我想将文件存储在 Google Cloud Storage 中一次,然后从那里读取它。

每次加载页面时,我当前如何编写文件!:

def get(self):  ## this gets called when loading myfile.tsv from d3.js
    datalist = MyEntity.all()
    self.response.headers['Content-Type'] = 'text/csv'
    writer = csv.writer(self.response.out, delimiter='\t')
    writer.writerow(['field1', 'field2'])
    for eachco in datalist:
        writer.writerow([eachco.variable1, eachco.variable2])
Run Code Online (Sandbox Code Playgroud)

虽然效率低下,但效果很好。

使用此 Google Cloud Storage 文档,我一直在尝试实现类似的功能:

def get(self):
    filename = '/bucket/myfile.tsv'
    datalist = MyEntity.all()
    bucket_name = os.environ.get('BUCKET_NAME', app_identity.get_default_gcs_bucket_name())
    write_retry_params = gcs.RetryParams(backoff_factor=1.1)
    writer = csv.writer(self.response.out, delimiter='\t')
    gcs_file = gcs.open(filename, 'w', content_type='text/csv', retry_params=write_retry_params)
    gcs_file.write(writer.writerow(['field1', 'field2']))
    for eachco in …
Run Code Online (Sandbox Code Playgroud)

python csv google-app-engine google-cloud-storage

2
推荐指数
1
解决办法
6838
查看次数