【问题标题】:Not able to copy file from DBFS to local desktop in Databricks无法将文件从 DBFS 复制到 Databricks 中的本地桌面
【发布时间】:2019-12-02 15:09:53
【问题描述】:

我想将我的文件从 dbfs 保存或复制到我的桌面(本地)。我使用这个命令但得到一个错误:

dbutils.fs.cp('/dbfs/username/test.txt', 'C:\Users\username\Desktop') 
Error: SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

当我为我的案例查找 dbutils.fs.help() 时,我按照说明进行操作:

dbutils.fs provides utilities for working with FileSystems. Most methods in this package can take either a DBFS path (e.g., "/foo" or "dbfs:/foo"), or another FileSystem URI. For more info about a method, use dbutils.fs.help("methodName"). In notebooks, you can also use the %fs shorthand to access DBFS. The %fs shorthand maps straightforwardly onto dbutils calls. For example, "%fs head --maxBytes=10000 /file/path" translates into "dbutils.fs.head("/file/path", maxBytes = 10000)".

fsutils
cp(from: String, to: String, recurse: boolean = false): boolean -> Copies a file or directory, possibly across FileSystems

【问题讨论】:

    标签: python databricks


    【解决方案1】:

    要将文件从 DBFS 下载到本地机器,您可以按照以下步骤操作。

    使用 cmd 安装和配置 Azure Databricks CLI 的步骤:

    第一步:安装 Python,如果你使用 Python 2,则需要 Python 2.7.9 及以上版本;如果你使用 Python 3,则需要 Python 3.6 及以上版本。

    步骤 2: 使用适合您 Python 安装的 pip 版本运行 pip install databricks-cli。如果您使用的是 Python 3,请运行 pip3 install databricks-cli

    第 3 步: 设置身份验证 => 要验证和访问 Databricks REST API,您需要使用个人访问令牌。令牌类似于密码;你应该小心对待他们。令牌过期并且可以撤销。

    • 单击右上角的用户配置文件图标用户配置文件 你的 Azure Databricks 工作区。

    • 点击用户设置。

    • 转到“访问令牌”选项卡。

    • 单击“生成新令牌”按钮。
    • 可选择输入说明(评论)和有效期。

    • 单击“生成”按钮。
    • 确保“复制”生成的令牌并存储在安全位置。

    Step4:复制databricks主机"https://centralus.azuredatabricks.net/"的URL和上一步创建的token。

    Step5:在cmd中运行“dbfs configure --token”如下图:

    dbfs configure --token
    Databricks Host (should begin with https://): https://centralus.azuredatabricks.net
    Token: dapi72026dsfsdfsh987hjfiu431
    

    第 6 步:使用 CMD 成功配置 Databricks CLI。

    要验证尝试运行“databricks fs ls”,请检查您是否能够看到 DBFS。

    参考:Databricks CLI

    您可以使用databricks cli将文件从databricks文件系统下载到本地机器,如下所示;

    dbfs cp dbfs:/myfolder/BRK4024.pptx A:DataSet\
    

    示例:由于我在 dbfs 上的 myfolder 中有一个示例 BRK4024.pptx 文件,因此我使用 databricks cli 命令复制到本地计算机文件夹名称(A:Dataset)

    希望这会有所帮助。


    如果这回答了您的问题,请点击“标记为答案”和“投票”。如果您有任何进一步的疑问,请告诉我们。

    【讨论】:

    【解决方案2】:

    您需要使用 Databricks CLI 来执行此任务。

    在本地机器上安装 CLI 并运行 databricks configure 进行身份验证。使用在用户设置下生成的访问令牌作为密码。

    在您的工作区安装并配置 CLI 后,您可以像这样将文件复制到 DBFS 和从 DBFS 复制文件:

    databricks fs cp dbfs:/path_to_file/my_file /path_to_local_file/my_file

    你也可以使用简写

    dbfs cp dbfs:/path_to_file /path_to_local_file

    【讨论】:

    • 我使用 pip install 添加 CLI 库。然后,我按照您的说明在本地计算机上安装 CLI,但这就是我失败的地方。由于我不是管理员,因此无法在 Databricks 中设置令牌。你能指导我下一步该怎么做吗?
    • 您不需要在 Databricks 集群上安装 CLI,只需在本地计算机上即可。不幸的是,如果您不是管理员并且无权访问用户设置,则需要向管理员请求身份验证令牌。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    相关资源
    最近更新 更多