将Databricks中的R Notebook中的csv文件写入Azure blob存储吗?

时间:2019-12-29 18:58:24

标签: r databricks azure-blob-storage

我有一个用数据砖创建的R Notebook,其中运行了一些代码。 R脚本创建一个csv文件,我需要将其上传到特定的存储帐户blob容器。要访问Blob存储,我有一个SAS(共享访问签名)字符串。我发现了一个R包“ AzureStor”,该包将R连接到Azure存储。是否可以使用此SAS字符串连接到Blob存储并将csv文件直接写入容器文件夹的特定命令?我是databrick的新手,正在尝试将上传过程自动化到Azure blob存储。

1 个答案:

答案 0 :(得分:0)

众所周知,有两种方法可以将Databricks中的R Notebook中的csv文件写入Azure Blob存储,如下所示。

  1. 请参考我的其他SO线程How do I upload a R dataframe as a CSV file on Azure blob storage?的答案,以使用AzureStor安装的install.packages("data.table")将R数据帧作为csv文件写入Azure Blob。示例代码如下。

    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)
    
  2. 首先,请遵循官方文档Data > Data Sources > Azure Blob Storage将Azure Blob存储容器安装到DBFS,然后您可以尝试使用fwrite的功能data.table来编写数据到安装的Azure Blob容器的目录中。注意:您可以尝试通过R软件包reticulate运行Python脚本,请参阅我对SO线程Reading csv files from microsoft Azure using R的回答以了解如何使用它。