【发布时间】:2019-10-29 00:27:38
【问题描述】:
我想将本地机器上的 pandas 数据帧直接上传到 Google Cloud Storage,因此,我不在 Cloud Function 中。我尝试了使用write-a-pandas-dataframe-to-google-cloud-storage-or-bigquery 的不同方式。但我无法保存。
注意:我只能使用 google.cloud 包
下面是我试过的代码
from google.cloud import storage
import pandas as pd
input_dict = [{'Name': 'A', 'Id': 100}, {'Name': 'B', 'Id': 110}, {'Name': 'C', 'Id': 120}]
df = pd.DataFrame(input_dict)
尝试:1
destination = f'gs://bucket_name/test.csv'
df.to_csv(destination)
尝试:2
storage_client = storage.Client(project='project')
bucket = storage_client.get_bucket('bucket_name')
gs_file = bucket.blob('test.csv')
df.to_csv(gs_file)
我遇到以下错误
对于选项1:没有这样的文件或目录:'gs://bucket_name/test.csv'
选项 2:“Blob”对象没有“关闭”属性
谢谢,
拉古纳特。
【问题讨论】:
-
我尝试了类似的设置,它对我有用。你的 Python 代码在 GCP 中吗? Cloud Storage 存储分区是否已经创建?您的 try1 解决方案应该可以通过 Cloud Shell 运行。
-
嗨,Raghunath 你能找到答案吗?我遇到了完全相同的问题,我正在编写一个 python 脚本,该脚本将由将 df 写入 CSV 并将其保存在 GCS 存储桶中的气流触发,但我得到了缺少可选依赖项“gcsfs”。处理GCS文件需要gcsfs库使用pip或conda安装gcsfs。
-
目前这个需求没有解决方案。我已经开发了代码来创建临时文件,然后上传到 GS
标签: python pandas google-cloud-platform google-cloud-storage