数据块数据库文件系统

DATABRICKS DBFS

我需要了解 Databricks DBFS。

简单来说,它是什么,它的目的是什么,它允许我做什么?

databricks 上的文档对此有说明..

"Files in DBFS persist to Azure Blob storage, so you won’t lose data even after you terminate a cluster."

任何见解都会有所帮助,无法找到从体系结构和使用角度详细介绍它的文档

我有使用 DBFS 的经验,它是一个很好的存储空间,可以保存您可以使用 DBFS CLI[=27= 从本地计算机上传的数据]! CLI setup 有点棘手,但是当你管理时,你可以轻松地在此环境中移动整个文件夹(记住使用 -overwrite!)

  1. 创建文件夹
  2. 上传文件
  3. 修改、删除文件和文件夹

使用 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),因此您在终止集群后不会丢失数据。

下面link将帮助您更多地了解 Databricks utils 命令: databricks-file-system link

除了其他值得一提的答案外​​还有几点:

  1. AFAIK,您无需支付与 DBFS 相关的存储费用。相反,您需要为 DBX 上的 运行 个职位支付小时费。

  2. 即使它在 blob/s3 中存储数据在云端,您也无法直接访问该存储。这意味着您必须使用 DBX API 或 cli 来访问此存储。

  3. 这引出了第三点,也是显而易见的一点,使用 DBFS 将使您的 spark 应用程序与 DBX 更紧密地耦合。这可能是也可能不是你想做的。