【问题标题】:Write a csv file from R Notebook in Databricks to Azure blob storage?将 Databricks 中的 R Notebook 中的 csv 文件写入 Azure blob 存储?
【发布时间】:2020-04-18 16:50:02
【问题描述】:

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

【问题讨论】:

    标签: r databricks azure-blob-storage


    【解决方案1】:

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

    1. 请参阅我对其他 SO 线程 How do I upload a R dataframe as a CSV file on Azure blob storage? 的回答,以使用 install.packages("data.table") 安装的 AzureStor 将 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 &gt; Data Sources &gt; Azure Blob Storage将Azure Blob Storage的容器挂载到DBFS,然后可以尝试使用data.table的函数fwrite向Azure目录写入数据已安装 Blob 容器。注意:可以尝试通过R包reticulate运行Python脚本,具体使用方法请参考我对SO线程Reading csv files from microsoft Azure using R的回答。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 2020-11-15
      • 2020-12-30
      • 2019-11-27
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 2019-07-28
      相关资源
      最近更新 更多