从 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 读取数据
我正在编写一个简单的 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 读取数据