如何在Azure Blob存储上将R数据帧作为CSV文件上传?

时间:2019-08-01 11:21:20

标签: r azure azure-storage-blobs

我正在尝试将R中的数据帧转换为Azure Blob存储上的CSV文件。我使用了AzureStor包,但是它不能正确转换数据帧。我希望有16列包含数据,但它会返回一列,其中所有数据都随机分配到各行中。

我使用了下面的R代码:

library(AzureStor)


bl_endp_key <- storage_endpoint("url", key="key")
cont <- storage_container(bl_endp_key, "containername")
csv <- serialize(dataframe, connection = NULL, ascii = TRUE)
con <- rawConnection(csv)
upload_blob(cont, src=con, dest="output.csv")

任何人都可以告诉我我需要更改的内容或给我示例代码来说明如何成功完成此操作吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是我的示例代码,可以正常工作。

library(AzureStor)

df <- data.frame(Column1 = c('Value 1', 'Value 2', 'Value 3'),
                 Column2 = c('Value 1', 'Value 2', 'Value 3'))

account_endpoint <- "https://<your account name>.blob.core.windows.net"
account_key <- "<your account key>"
container_name <- "<your container name>"
bl_endp_key <- storage_endpoint(account_endpoint, key=account_key)
cont <- storage_container(bl_endp_key, container_name)
w_con <- textConnection("foo", "w")
write.csv(df, w_con)
r_con <- textConnection(textConnectionValue(w_con))
close(w_con)
upload_blob(cont, src=r_con, dest="df.csv")
close(con)

df.csv的内容如下。

"","Column1","Column2"
"1","Value 1","Value 1"
"2","Value 2","Value 2"
"3","Value 3","Value 3"

希望有帮助。