Записать Python DataFrame как CSV в BLOB-объект Azure - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть два вопроса о чтении и записи объектов Python из / в BLOB-объект Azure.

1) Может кто-нибудь подсказать мне, как записать файл данных Python в виде csv-файла непосредственно в BLOB-объект Azure, не сохраняя его локально?

Я пытался использовать функции create_blob_from_text & create_blob_from_stream , но ни одна из них не работает.

Преобразование кадра данных в строку и использование функции create_blob_from_text записывает файл в BLOB-объект, но в виде простой строки, но не в виде CSV.

    df_b = df.to_string()
    block_blob_service.create_blob_from_text('test', 'OutFilePy.csv', df_b)  

2) Как напрямую прочитать файл json из хранилища BLOB-объектов Azure непосредственно в Python?

1 Ответ

0 голосов
/ 25 апреля 2018

1) Может кто-нибудь сказать мне, как написать файл данных Python как CSV-файл непосредственно в BLOB-объект Azure, не сохраняя его локально?

Вы можете использовать pandas.DataFrame.to_csv метод.

Код образца:

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)

Результат вывода:

enter image description here

2.Как напрямую прочитать файл json из хранилища BLOB-объектов Azure непосредственно в Python?

Код образца:

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)

Результат вывода:

enter image description here

Надеюсь, это поможет вам.

...