【问题标题】:How do I copy a local file to Azure Databricks DBFS filestore如何将本地文件复制到 Azure Databricks DBFS 文件存储
【发布时间】:2020-11-12 08:51:46
【问题描述】:

我在 Azure Databricks 中使用以下命令尝试将文件 test.csv 从本地 C: 驱动器复制到 Databricks dbfs 位置,如图所示。

dbutils.fs.cp("C:/BoltQA/test.csv", "dbfs:/tmp/test_files/test.csv")

我收到此错误:

java.io.IOException: No FileSystem for scheme: C
---------------------------------------------------------------------------
ExecutionError                            Traceback (most recent call last)
<command-3936625823332356> in <module>
----> 1 dbutils.fs.cp("C:/test.csv", "dbfs:/tmp/test_files/test.csv")
      2 

/local_disk0/tmp/1605164901540-0/dbutils.py in f_with_exception_handling(*args, **kwargs)
    312                     exc.__context__ = None
    313                     exc.__cause__ = None
--> 314                     raise exc
    315             return f_with_exception_handling
    316 

请帮忙。

【问题讨论】:

    标签: databricks azure-databricks dbutils


    【解决方案1】:

    很遗憾,您不能使用 dbutils.fs.cp 命令将文件从本地计算机复制到 Databricks 文件系统。它曾经只在 Databricks 文件系统上复制文件。

    有多种方法可以将文件从本地计算机上传到 Azure Databricks DBFS 文件夹。

    方法 1:使用 Azure Databricks 门户。

    方法2:使用Databricks CLI

    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

    方法3:使用名为DBFS Explorer的第三方工具

    DBFS Explorer 是一种将文件上传和下载到 Databricks 文件系统 (DBFS) 的快捷方式。这将适用于 Databricks 的 AWS 和 Azure 实例。您需要在 Web 界面中创建一个不记名令牌才能连接。

    第一步:下载安装DBFS Explorer并安装。

    第二步:打开 DBFS Explorer 并输入:Databricks URL 和个人访问令牌

    第三步:从本机选择你要上传文件的文件夹,拖放到要上传的文件夹中,点击上传即可。

    【讨论】:

    • 我是否可以先将文件上传到 Azure blob 存储? Databricks 能否从那里获取文件?
    • 您可以将 Blob 存储容器或容器内的文件夹装载到 Databricks 文件系统 (DBFS)。挂载是指向 Blob 存储容器的指针,因此数据永远不会在本地同步。参考:docs.microsoft.com/en-us/azure/databricks/data/data-sources/…
    【解决方案2】:

    感谢您的回答@CHEEKATLAPRADEEP-MSFT。

    您可以挂载 Blob 存储容器或容器内的文件夹 到 Databricks 文件系统 (DBFS)。 mount 是指向 Blob 的指针 存储容器,因此数据永远不会在本地同步。参考 docs.microsoft.com

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多