I got two questions on reading and writing Python objects from/to Azure blob.
1) Can someone tell me how to write Python dataframe as csv file directly into Azure Blob without storing it locally?
I tried using the functions create_blob_from_text & create_blob_from_stream
but none of them works.
Converting dataframe to string and using create_blob_from_text function
writes the file into the blob but as a plain string but not as csv.
df_b = df.to_string()
block_blob_service.create_blob_from_text('test', 'OutFilePy.csv', df_b)
2) How to directly read a json file in Azure blob storage directly into Python?
解决方案1) Can someone tell me how to write Python dataframe as csv file
directly into Azure Blob without storing it locally?
Sample code:
from azure.storage.blob import (
BlockBlobService
)
import pandas as pd
import io
output = io.StringIO()
head = ["col1" , "col2" , "col3"]
l = [[1 , 2 , 3],[4,5,6] , [8 , 7 , 9]]
df = pd.DataFrame (l , columns = head)
print df
output = df.to_csv (index_label="idx", encoding = "utf-8")
print(output)
accountName = "***"
accountKey = "***"
containerName = "test1"
blobName = "test3.json"
blobService = BlockBlobService(account_name=accountName, account_key=accountKey)
blobService.create_blob_from_text('test1', 'OutFilePy.csv', output)
Output result:
2.How to directly read a json file in Azure blob storage directly into Python?
Sample code:
from azure.storage.blob import (
BlockBlobService
)
accountName = "***"
accountKey = "***"
containerName = "test1"
blobName = "test3.json"
blobService = BlockBlobService(account_name=accountName, account_key=accountKey)
result = blobService.get_blob_to_text(containerName,blobName)
print(result.content)
Output result:
Hope it helps you.
博客围绕Python与Azure Blob的数据读写展开,提出两个问题:一是如何将Python的dataframe直接以csv格式写入Azure Blob而不本地存储;二是如何直接将Azure Blob存储中的json文件读取到Python中,并给出了相应的示例代码和输出结果。

209


被折叠的 条评论
为什么被折叠?



