gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 02:27:53 26 4
gpt4 key购买 nike

目标 - 读取上传到谷歌云存储桶的 csv 文件。

环境 - 在主节点上使用 SSH 实例运行 Jupyter notebook。在 Jupyter notebook 上使用 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

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

第二种方法 - 使用 gcloud 包尝试访问 train.csv 文件。示例代码如下所示。下面的代码不是实际代码。我的代码版本中谷歌云存储上的文件被称为“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(
readable, source_format='CSV', skip_leading_rows=1)

第三种方法-

import csv
import urllib

url = 'https://storage.cloud.google.com/<bucket>/train.csv'


response = urllib.urlopen(url)
cr = csv.reader(response)
print cr

for row in cr:
print row

结果 - 上面的代码不会导致任何错误,但会显示 google 页面的 XML 内容,如下所示。我有兴趣查看火车 csv 文件的数据。

['<!DOCTYPE html>']
['<html lang="en">']
[' <head>']
[' <meta charset="utf-8">']
[' <meta content="width=300', ' initial-scale=1" name="viewport">']
[' <meta name="google-site-verification" content="LrdTUW9psUAMbh4Ia074- BPEVmcpBxF6Gwf0MSgQXZs">']
[' <title>Sign in - Google Accounts</title>']

有人可以阐明这里可能出现的问题以及我如何实现我的目标吗?非常感谢您的帮助。

非常感谢您的帮助!

最佳答案

我假设您使用的是在 Google Cloud Platform (GCP) 的机器上运行的 Jupyter notebook?如果是这种情况,您将已经在该机器上运行了 Google Cloud SDK(默认情况下)。

通过此设置,您可以通过 2 个简单的选项来使用 Google Cloud Storage (GCS):

from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket('python_test_hm')
blob = bucket.blob('train.csv')
blob.upload_from_string('this is test content!')

从 GCS 读取:

from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket('python_test_hm')
blob = storage.Blob('train.csv', bucket)
content = blob.download_as_string()

关于python - 无法读取上传到谷歌云存储桶的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com