在群集范围的初始化脚本中从dbfs复制文件

时间:2019-11-06 10:45:53

标签: bash azure databricks azure-databricks

我想在Azure Databricks群集上试用群集范围的初始化脚本。我正在努力查看哪些命令可用。

基本上,我在dbfs上有一个文件,要在集群启动时将其复制到本地目录/tmp/config

所以我创建了一个非常简单的bash脚本:

#!/bin/bash
mkdir - p /tmp/config
databricks fs cp dbfs:/path/to/myFile.conf /tmp/config

启动群集失败,并显示“群集已终止。原因:初始化脚本失败”。查看dbfs上的日志,我看到错误

bash: line 1: databricks: command not found

好,因此databricks作为命令不可用。这是我在本地bash上用于在dbfs之间复制文件的命令。

还有哪些其他命令可用于从dbfs复制文件? 更笼统:哪些命令实际可用?

2 个答案:

答案 0 :(得分:1)

dbfs已安装到集群,因此您只需将其复制到shell脚本中即可:

例如

cp /dbfs/your-folder/your-file.txt ./your-file-txt

如果在/ dbfs位置上执行dir,则作为回报,您将获得dbfs中的所有文件夹/数据。

您还可以先通过

在笔记本中对其进行测试
%sh
cd /dbfs
dir

答案 1 :(得分:0)

默认情况下,databricks群集上未安装Databricks CLI。这就是您看到此错误消息bash: line 1: databricks: command not found的原因。

要实现此目的,您应该使用 dbutils 命令,如下所示。

dbutils.fs.mkdirs("/tmp/config")
dbutils.fs.mv("/configuration/proxy.conf", "/tmp/config")

enter image description here

参考: Databricks Utilities

希望这会有所帮助。