从Google存储云读取数据到Google云数据实验室

2024-05-09 08:57:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个csv文件从Google存储云读取到Google云数据实验室,就像here中建议的那样。你知道吗

我不断得到错误: 源对象gs://analog-arbor-233411/跟踪.csv不存在。(analog-arbor-233411是我的名字,跟踪.csv是我的csv文件。你知道吗

所以我检查了这个桶是否真的存在,它确实存在。你知道吗

import google.datalab.storage as storage
mybucket = storage.Bucket('analog-arbor-233411')
mybucket.exists()

在这里,我甚至遍历mybucket.objects文件()为bucket中的对象提供一个迭代器,以确保获得一个现有对象。所以data\u csv\u meta只接受迭代中的最后一个对象。然后我再次检查了它是否存在,当然它确实存在!你知道吗

for i in mybucket.objects():
    data_csv = i
data_csv.exists()

有件有趣的事。当我运行以下命令时,我得到错误源对象gs://analog-arbor-233411/跟踪.csv不存在(数据中的我的对象名)跟踪.csv)你知道吗

uri = data_csv.uri
%gcs read --object $uri --variable data

试着到处找,但找不到答案。你知道吗


Tags: 文件csv数据对象gsdataobjects错误
1条回答
网友
1楼 · 发布于 2024-05-09 08:57:12

在当前代码中,在for循环之外调用data_csv.exists(),因此它只返回bucket迭代器返回的最后一个data_csv对象的结果,该对象可能是traissn.csv,也可能不是traissn.csv。你知道吗

所以要么:

  • for循环中,如果data_csv指向traissn.csv,则添加一个break语句,这样data_csv就保持不变
  • 在for循环中进行gcs调用

相关问题 更多 >