【问题标题】:DATABRICKS DBFSDATABRICKS 数据库文件系统
【发布时间】:2019-07-15 16:49:06
【问题描述】:

我需要了解一下 Databricks DBFS。

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

databricks 上的文档是这么说的..

“DBFS 中的文件保留在 Azure Blob 存储中,因此即使在终止集群后也不会丢失数据。”

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

【问题讨论】:

    标签: azure file system databricks


    【解决方案1】:

    我有使用DBFS 的经验,它是一个很棒的存储,可以保存您可以使用DBFS CLI 从本地计算机上传的数据! 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)
    

    我认为它易于使用和学习,希望这些信息对您有所帮助!

    【讨论】:

    • 感谢 Eva,这真的很有帮助,感谢您花时间和精力详细说明这一点
    【解决方案2】:

    Databricks 文件系统 (DBFS) 是一种分布式文件系统,安装在 Databricks 工作区中,可在 Databricks 集群上使用。
    DBFS 是可扩展对象存储之上的抽象,具有以下优点:
    1) 允许您挂载存储对象,以便无需凭据即可无缝访问数据。
    2) 允许您使用目录和文件语义而不是存储 URL 与对象存储进行交互。 将文件持久化到对象存储 (Blob),因此您在终止集群后不会丢失数据。

    以下链接将帮助您更深入地了解 Databricks utils 命令: databricks-file-system link

    【讨论】:

      【解决方案3】:

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

      1. AFAIK,您无需支付与 DBFS 相关的存储成本。相反,您需要按小时付费才能在 DBX 上运行作业。

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

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

      【讨论】:

      • 很好,你提到了第三点。这很重要,但有时人们在使用 databricks 平台时认为这是理所当然的。
      • 在 Azure 上,您需要为 DBFS 存储付费。如果你去托管资源组 -> 成本分析 -> 为资源类型添加一个过滤器:存储帐户,你应该可以看到它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多