熊猫数据框到云存储桶

时间:2019-09-15 01:20:30

标签: python pandas google-cloud-functions google-cloud-storage

我正在尝试从MySQL数据库中转储表并将其上载到存储桶。

我处理了连接,选择了表并将其转换为Pandas Dataframe。

因此,我想将此df上传到Cloud Storage。我确实读过关于Cloud Functions环境的/tmp,但是我需要在磁盘上写它才能发送到GCS?我可以直接将其上传到存储桶中而不在本地保存吗?

import mysql.connector
import pandas as pd
from google.cloud import storage

mydb = mysql.connector.connect(
    host="host", user="user", passwd="passwd", database="database")

mycursor = mydb.cursor(named_tuple=True)
mycursor.execute("SELECT * FROM table")
myresult = mycursor.fetchall()

df = pd.DataFrame(data=myresult)

storage_client = storage.Client()
bucket = storage_client.get_bucket("my-bucket")
blob = bucket.blob("file.csv")

我在笔记本电脑上进行测试:

df.to_csv("file.csv")
blob.upload_from_filename("file.csv")

它可以工作,但似乎不是使用Cloud Functions的最佳方法。

1 个答案:

答案 0 :(得分:0)

我以这种方式解决了。

df = pd.DataFrame(data=myresult).to_csv(sep=";", index=False, quotechar='"', quoting=csv.QUOTE_ALL, encoding="UTF-8")
blob.upload_from_string(data=df)