从 Azure 函数将 pandas DataFrame 写入 Azure Blob 存储

Writing pandas DataFrame to Azure Blob Storage from Azure Function

我正在编写一个简单的 Azure 函数来读取输入 blob,从中创建一个 pandas DataFrame,然后将其作为 CSV 再次写入 Blob 存储。我有下面给出的代码来读取文件并将其转换为 DataFrame,

导入日志记录 将 pandas 导入为 pd 导入 io

导入azure.functions作为函数

def main(inputBlob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {inputBlob.name}\n"
                 f"Blob Size: {inputBlob.length} bytes")

    df = pd.read_csv(io.BytesIO(inputBlob.read()), sep='#', encoding='unicode_escape', header=None, names=range(16))
    logging.info(df.head())

如何将此 DataFrame 写入 Blob 存储?

我已经用下面的代码上传了文件,target 是容器,target.csv 是我们要写入和存储的 blob。

blob_service_client = BlobServiceClient.from_connection_string(CONN_STR)
# WRITE HEADER TO A OUT PUTFILE
output_file_dest = blob_service_client.get_blob_client(container="target", blob="target.csv")
#INITIALIZE OUTPUT
output_str = ""
#STORE COULMN HEADERS
data= list()
data.append(list(["column1", "column2", "column3", "column4"]))

# Adding data to a variable. Here you can pass the input blob. Also look for the parameters that sets your requirement in upload blob.
output_str += ('"' + '","'.join(data[0]) + '"\n')   
output_file_dest.upload_blob(output_str,overwrite=True)

从上面的代码中,您可以忽略#STORE COULMN HEADERS 并替换为您使用 pandas.

完成的输入 blob 读取数据