我正在尝试使用以下命令将文件从数据块复制到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 :(得分:0)
我知道,有两种方法可以将文件从Azure Databricks复制到Azure Blob存储。请参阅Azure Databricks主题Data Sources
的官方文档Azure Blob Storage
,以了解更多详细信息。
这是下面的示例代码。
要将Azure Blob存储的容器作为dbfs
路径安装到Azure Databricks,您可以cp
在databricks路径中的文件到Blob存储的已安装路径。请参阅Mount Azure Blob Storage containers with DBFS。
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')
要设置帐户访问密钥或为容器设置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')
希望有帮助。