python - Pandas Dataframe 到云存储桶
问题描述
我正在尝试从 MySQL 数据库中转储表并将其上传到存储桶。
我处理了连接,选择了表格并将其转换为 Pandas 数据框。
所以,我想将此 df 上传到 Cloud Storage。我确实阅读了有关 Cloud Functions 环境的/tmp的信息,但我需要先将其写入磁盘才能发送到 GCS?不保存本地可以直接上传到bucket吗?
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 上的最佳方式。
解决方案
我就这样解决了。
df = pd.DataFrame(data=myresult).to_csv(sep=";", index=False, quotechar='"', quoting=csv.QUOTE_ALL, encoding="UTF-8")
blob.upload_from_string(data=df)
推荐阅读
- web-component - 如何在 Web 组件中使用 Material Design 图标?
- pyqt5 - 从 HSV 转换 PyQt5 QColor
- mysql - 将多行数据合并为一个
- twitter - Twitter的这些功能的含义是什么?
- java - 选择时 DatePickerCellEditor 格式发生变化
- git - 从自定义 git repo 构建
- python - 在类和方法上组合 @mock.patch 时的顺序
- android - 使用从服务器加载的重定向 URL 中的 URL 打开应用程序
- python-3.x - Python 3 中哪些条件失败(如何检测哪些失败)?
- python - How does nested named tuple equality check work?