python - 使用 Cloud Functions 将 Excel 文件从 FTP 提取到 BigQuery
问题描述
我正在创建一个自动化脚本来从 FTP 下载文件并将它们存储到 BigQuery 中。
问题是 BigQuery 只接受.csv
文件。出于这个原因,我正在寻找处理文件的方法.xlsx
,.xls
条件是我计划将此批处理代码放在云中。
我提到后者作为将.xlsx
文件转换为的一种方法.csv
是使用类似的东西:
import pandas as pd
data_xls = pd.read_excel('file_on_ftp.xlsx')
data_xls.to_csv('csvfile.csv', encoding='utf-8', index=False)
但是,这将在临时存储的某处创建本地文件。显然,使用 Cloud Functions 之后,我必须监控文件是否已被删除,这使得当一个云功能崩溃时它不可靠。
因此有更好的方法来处理.xlsx
加载到 BigQuery 中吗?或者这是要走的路?
解决方案
您可能会对最近发布的本指南感兴趣:“使用 Cloud Functions 将数据从 Cloud Storage 流式传输到 BigQuery”。
一般架构是:
- 将有问题的文件从 FTP 上传到 Cloud Storage
- 您的 Cloud Function 从 Cloud Storage 接收上传事件
- 您的云函数将文件加载到内存中(磁盘上没有存储空间)
- 您的 Cloud Function 将数据流式传输到 BigQuery
我不确定#1 是否适合您确保文件不会被遗忘在某处的需要,但我认为如果您在假设文件需要上传到 GCP 某处(替代方法是直接从您的本地计算机或您控制的实例流式传输到 BigQuery)。
推荐阅读
- google-analytics - RCloud URL 和 Google Analytics 错误
- python - python,矩阵列提取和求和
- hadoop - 使用 -Phadoop_2 构建的 giraph 和使用 -Phadoop_yarn 构建的 giraph 对 hadoop 的使用有何变化?
- winforms - 如何防止 Windows 窗体文本框中的空值/空白值(使用 Powershell)?
- python - 在 Kaggle 上使用 Python 绘制地图:地图未显示
- c# - 加入错误 | 无法创建仅原始类型的常量值
- javascript - 如何防止 find :submit 启用表单中的其余按钮?
- java - 通过Java执行curl
- python - 在数据框中替换“%”,然后将所有字符串转换为浮点数
- html - 我的 HTML 文件如何通过 gh-pages 访问我的 Javascript 文件?