Согласно моим исследованиям, вы не можете напрямую сохранять выходные данные Matplotlib в хранилище BLOB-объектов Azure.
Чтобы сохранить выходные данные Matplotlib в хранилище BLOB-объектов Azure, выполните следующие действия:
Шаг 1. Сначала необходимо сохранить его в файловой системе Databrick (DBFS), а затем скопировать в хранилище BLOB-объектов Azure.
Сохранение вывода Matplotlib в файловую систему Databricks (DBFS): мы используем следующую команду для сохранения вывода в DBFS: plt.savefig('/dbfs/myfolder/Graph1.png')
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'fruits':['apple','banana'], 'count': [1,2]})
plt.close()
df.set_index('fruits',inplace = True)
df.plot.bar()
plt.savefig('/dbfs/myfolder/Graph1.png')
![введите здесь описание изображения](https://i.stack.imgur.com/VDOmH.png)
Шаг 2. Скопируйте файл из файловой системы Databricks в хранилище BLOB-объектов Azure.
Есть два метода копирования файла из DBFS в Azure Blob Stroage.
Метод 1. Доступ напрямую к хранилищу BLOB-объектов Azure
Получите доступ к хранилищу BLOB-объектов Azure напрямую, установив Spark.conf.set и скопировав файл из DBFS в хранилище BLOB-объектов.
spark.conf.set("fs.azure.account.key.< Blob Storage Name>.blob.core.windows.net", "<Azure Blob Storage Key>")
Используйте dbutils.fs.cp для копирования файла из DBFS в хранилище BLOB-объектов Azure:
dbutils.fs.cp('dbfs:/myfolder/Graph1.png', 'wasbs://<Container>@<Storage Name>.blob.core.windows.net/Azure')
![введите здесь описание изображения](https://i.stack.imgur.com/OEQbG.png)
Метод 2. Подключите контейнеры хранилища BLOB-объектов Azure к DBFS
Вы можете подключить контейнер хранилища BLOB-объектов или папку внутри контейнера к файловой системе Databricks (DBFS). Монтирование - это указатель на контейнер хранилища BLOB-объектов, поэтому данные никогда не синхронизируются локально.
dbutils.fs.mount(
source = "wasbs://[email protected]/Azure",
mount_point = "/mnt/chepra",
extra_configs = {"fs.azure.sas.sampledata.chepra.blob.core.windows.net":dbutils.secrets.get(scope = "azurestorage", key = "azurestoragekey")})
Используйте dbutils.fs.cp, скопируйте файл в контейнер хранилища BLOB-объектов Azure:
dbutils.fs.cp ('dbfs: /myfolder/Graph1.png', '/ dbfs / mnt / chepra')
![введите здесь описание изображения](https://i.stack.imgur.com/spB44.png)
Следуя Method1 или Method2, вы можете успешно сохранить выходные данные в хранилище BLOB-объектов Azure.
![введите здесь описание изображения](https://i.stack.imgur.com/Zv3a9.png)
Дополнительные сведения см. В разделе "Databricks - хранилище BLOB-объектов Azure ".
Надеюсь это поможет. Сообщите нам, если у вас возникнут дополнительные вопросы.
person
CHEEKATLAPRADEEP-MSFT
schedule
14.02.2020