如何从Blob存储下载文件

时间:2019-10-14 15:12:23

标签: azure azure-storage-blobs databricks

我的Blob存储中有一个CSV文件。我要下载文件。奇怪的是,我实际上看不到文件。 CSV文件由Python作业创建,并转换为Scala数据框。

当我运行这两行代码时:

# convert python df to spark df and export the spark df
spark_df = spark.createDataFrame(df)
## Write Frame out as Table
spark_df.write.csv("dbfs:/rawdata/corp/AAA.csv")

我收到此错误:

org.apache.spark.sql.AnalysisException: path dbfs:/rawdata/corp/AAA.csv already exists.;

奇怪的是,当我使用Azure Storage Explorer时看不到文件。显然文件存在,即使我看不到它。如何下载此CSV文件?如果有人可以提出更好的选择,我最好使用Databricks,或者其他一些方式。

谢谢。

3 个答案:

答案 0 :(得分:2)

如何使用Blob存储sdk和以下命令

# Download as a file
block_blob_service.get_blob_to_path(container_name, blob_name, local_file_name)

答案 1 :(得分:1)

我在这里找到了另一个不错的解决方案。

https://docs.databricks.com/notebooks/notebooks-use.html

enter image description here

在执行此步骤之前,请先显示数据框的内容,然后运行此行代码。

display(df)

答案 2 :(得分:1)

注意::使用GUI,您可以下载完整结果(最多100万行)。

enter image description here

要下载完整结果(超过100万个),请先将文件保存到dbfs,然后使用Databricks cli将文件复制到本地计算机,如下所示。

  

dbfs cp“ dbfs:/FileStore/tables/AA.csv”“ A:\ AzureAnalytics”

参考: Databricks file system

DBFS命令行界面(CLI)使用DBFS API向DBFS公开了易于使用的命令行界面。使用此客户端,您可以使用与Unix命令行上使用的命令类似的命令与DBFS进行交互。例如:

# List files in DBFS
dbfs ls
# Put local file ./apple.txt to dbfs:/apple.txt
dbfs cp ./apple.txt dbfs:/apple.txt
# Get dbfs:/apple.txt and save to local file ./apple.txt
dbfs cp dbfs:/apple.txt ./apple.txt
# Recursively put local dir ./banana to dbfs:/banana
dbfs cp -r ./banana dbfs:/banana

参考: Installing and configuring Azure Databricks CLI

希望这会有所帮助。

相关问题