Как создать PDF-файл и загрузить его в хранилище BLOB-объектов с помощью R в записных книжках студии машинного обучения - PullRequest
0 голосов
/ 11 апреля 2019

Мне удалось открыть соединение с хранилищем блогов Azure, прочитать файл CSV и показать результаты в Azure Machine Learning Studio, Notebooks.

Я хочу создать файл PDF и загрузить его в контейнер BLOB-объектов.

Я использовал здесь документацию для подключения к хранилищу Azure: https://github.com/cloudyr/AzureStor

install.packages("AzureStor")
library(AzureStor)
bl_endp_key <- storage_endpoint("https://xxx.blob.core.windows.net", key="abc")
list_storage_containers(bl_endp_key)
cont <- storage_container(bl_endp_key, "csv")
list_storage_files(cont)
rawvec <- download_blob(cont, src="Claims reserving.csv", dest=NULL)

Затем мне нужно сгенерировать файл PDF В ПАМЯТЬ и загрузить его. Azure Machine Learning Studio не позволяет загружать или хранить файлы, не являющиеся сценариями Python или R, поэтому мне нужно сгенерировать файл в памяти и загрузить его.

pdf("1.pdf")
dev.off() 

Я пробовал это:

upload_blob(cont, src=con, dest="1.pdf")

Но получил эту ошибку

Ошибка в наследовании (src, "connection"): объект 'con' не найден Traceback:

1. upload_blob(cont, src = con, dest = "1.pdf")
2. upload_blob_internal(container, src, dest, type = type, blocksize = blocksize, 
 .     lease = lease)
3. inherits(src, "connection")

Я пробовал это

plot_binary <- paste(readBin("3.pdf", what="raw", n=1e6), collapse="")

Но получил эту ошибку:

Warning message in file(con, "rb"):
“cannot open file '3.pdf': No such file or directory”
Error in file(con, "rb"): cannot open the connection
Traceback:

1. paste(readBin("3.pdf", what = "raw", n = 1e+06), collapse = "")
2. readBin("3.pdf", what = "raw", n = 1e+06)
3. file(con, "rb")

1 Ответ

2 голосов
/ 22 апреля 2019

Мне удалось добиться с помощью аналогичного кода. пожалуйста, посмотрите на скриншот enter image description here

pdf хранится в Azure «Файлы» в учетной записи хранения

У меня не было никакого содержимого в этом примере для создания PDF, поэтому мой PDF-файл пуст, созданный в учетной записи. Вы также можете хранить в BLOB, как показано в этом примере по ссылке

https://www.rdocumentation.org/packages/AzureStor/versions/2.0.1/topics/storage_container https://www.rdocumentation.org/packages/AzureStor/versions/2.0.0/topics/list_blobs

enter image description here

install.packages("AzureStor")
library(AzureStor)

file_endpoint <- storage_endpoint("https://<storage_account>.file.core.windows.net/", key="xxxxx")


list_storage_containers(file_endpoint) 

cont <- storage_container(file_endpoint, "csv")

list_storage_files(cont, '')

rawvec <- download_blob(cont, src="test.csv", dest=NULL)

pdf("1.pdf")

dev.off()

storage_upload(cont, "1.pdf", "2.pdf")
...