【发布时间】:2019-07-15 16:49:06
【问题描述】:
我需要了解一下 Databricks DBFS。
简单来说,它是什么,它的目的是什么,它允许我做什么?
databricks 上的文档是这么说的..
“DBFS 中的文件保留在 Azure Blob 存储中,因此即使在终止集群后也不会丢失数据。”
任何见解都会有所帮助,但无法找到从架构和使用角度详细介绍它的文档
【问题讨论】:
标签: azure file system databricks
我需要了解一下 Databricks DBFS。
简单来说,它是什么,它的目的是什么,它允许我做什么?
databricks 上的文档是这么说的..
“DBFS 中的文件保留在 Azure Blob 存储中,因此即使在终止集群后也不会丢失数据。”
任何见解都会有所帮助,但无法找到从架构和使用角度详细介绍它的文档
【问题讨论】:
标签: azure file system databricks
我有使用DBFS 的经验,它是一个很棒的存储,可以保存您可以使用DBFS CLI 从本地计算机上传的数据! CLI setup 有点棘手,但是当您管理时,您可以轻松地在此环境中移动整个文件夹(记住使用 -overwrite!)
使用 Scala,您可以使用如下代码轻松提取存储在此存储中的数据:
val df1 = spark
.read
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("dbfs:/foldername/test.csv")
.select(some_column_name)
或读取整个文件夹以处理所有可用的csv文件:
val df1 = spark
.read
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("dbfs:/foldername/*.csv")
.select(some_column_name)
我认为它易于使用和学习,希望这些信息对您有所帮助!
【讨论】:
Databricks 文件系统 (DBFS) 是一种分布式文件系统,安装在 Databricks 工作区中,可在 Databricks 集群上使用。
DBFS 是可扩展对象存储之上的抽象,具有以下优点:
1) 允许您挂载存储对象,以便无需凭据即可无缝访问数据。
2) 允许您使用目录和文件语义而不是存储 URL 与对象存储进行交互。
将文件持久化到对象存储 (Blob),因此您在终止集群后不会丢失数据。
以下链接将帮助您更深入地了解 Databricks utils 命令: databricks-file-system link
【讨论】:
除了其他值得一提的答案之外还有几点:
AFAIK,您无需支付与 DBFS 相关的存储成本。相反,您需要按小时付费才能在 DBX 上运行作业。
即使它将数据存储在云中的 blob/s3 中,您也无法直接访问该存储。这意味着您必须使用 DBX API 或 cli 才能访问此存储。
这就引出了第三点,也是显而易见的一点,使用 DBFS 将使您的 spark 应用程序与 DBX 更紧密地耦合在一起。这可能是也可能不是您想要做的。
【讨论】: