通过云功能从云存储中读取数据

时间:2018-11-17 00:17:37

标签: python python-3.x google-cloud-platform google-cloud-storage google-cloud-functions

我正在尝试对在Python中建立数据处理管道的概念进行快速证明。为此,我想构建一个Google Function,当将某些.csv文件放入Cloud Storage时将触发该函数。

我遵循了this Google Functions Python tutorial,尽管示例代码确实触发了函数在删除文件时创建一些简单日志的过程,但实际上我被困在实际读取数据内容所需的调用上。我试图搜索SDK / API指导文档,但找不到。

在这种情况下,一旦我处理了.csv,我希望能够将从中提取的一些数据添加到GCP的发布/订阅中。

2 个答案:

答案 0 :(得分:4)

该函数实际上并不接收文件的内容,而只是接收有关它的一些元数据。

您将要使用google-cloud-storage客户端。有关更多详细信息,请参见"Downloading Objects"指南。

将其与您正在使用的教程一起放置,您将获得类似以下的功能:

@Override
public double getArea() throws ExceptionCheck {
    try {
        return getHeight() * getWidth();
    }
    catch(ExceptionCheck e){
        System.out.printf("The area cannot be calculated, the end point is missing!\n\n");
        throw e; // <-- add this.
    }
}

答案 1 :(得分:0)

这是使用pandas的替代解决方案:

云功能代码:

import pandas as pd

def GCSDataRead(event, context):
    bucketName = event['bucket']
    blobName = event['name']
    fileName = "gs://" + bucketName + "/" + blobName
    
    dataFrame = pd.read_csv(fileName, sep=",")
    print(dataFrame)