繁体   English   中英

将文件从数据块复制到Blob存储会导致文件大小为0

[英]Copying files from databricks to blob storage results in files of 0 size

我正在尝试使用以下命令将文件从数据块复制到Blob存储中的位置:

dbutils.fs.cp('dbfs:/FileStore/tables/data/conv_subset_april_2018.csv',"wasb://blobname@outputcontainername.blob.core.windows.net/" + "conv_subset_april_2018" + ".csv")

现在,blobname和outputcontainername是正确的,并且我已经将文件更早地复制到了存储位置。 仅在今天,当我执行命令时,我得到的文件大小为0。而且文件data.csv确实存在于给定的位置,并且不为空或损坏。 有谁知道会发生什么? 屏幕截图显示了我的意思。

大小为0的文件

众所周知,有两种方法可以将文件从Azure Databricks复制到Azure Blob存储。 请参阅官方文档Azure Blob Storage ,主题为Azure Databricks的Data Sources ,以了解更多详细信息。

这是我下面的示例代码。

  1. 要将Azure Blob存储的容器作为dbfs路径安装到Azure Databricks,可以将dbfs路径中的文件cp到Blob存储的已安装路径。 请参阅使用DBFS挂载Azure Blob存储容器

     dbutils.fs.mount( source = "wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net", mount_point = "/mnt/<mount-name>", extra_configs = {"fs.azure.account.key.<your-storage-account-name>.blob.core.windows.net":"<your-storage-account-key>"}) dbutils.fs.cp('dbfs:/FileStore/tables/data/conv_subset_april_2018.csv','dbfs:/mnt/<mount-name>/conv_subset_april_2018.csv') # Or dbutils.fs.cp('/FileStore/tables/data/conv_subset_april_2018.csv','/mnt/<mount-name>/conv_subset_april_2018.csv') 
  2. 要设置帐户访问密钥或为容器设置SAS,然后将文件从dbfs文件路径复制到wasbs文件路径。

     spark.conf.set( "fs.azure.account.key.<your-storage-account-name>.blob.core.windows.net", "<your-storage-account-access-key>") # Or # spark.conf.set( # "fs.azure.sas.<your-container-name>.<your-storage-account-name>.blob.core.windows.net", # "<complete-query-string-of-your-sas-for-the-container>") dbutils.fs.cp('/FileStore/tables/data/conv_subset_april_2018.csv','wasbs://blobname@outputcontainername.blob.core.windows.net//conv_subset_april_2018.csv') 

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM