Способы указания пути для DBFS

При работе с Azure Databricks вам иногда понадобится получить доступ к файловой системе модулями DBFS.

Доступ к файлам в DBFS осуществляется с помощью стандартных команд файловой системы, однако синтаксис различается в зависимости от используемого языка или средства.

Например, Возьмем следующий путь DBFS:

dbfs:/mnt/test_folder/test_folder1/

Apache Spark

В Spark необходимо указать полный путь внутри команды Spark Read.

spark.read.parquet(“dbfs:/mnt/test_folder/test_folder1/file.parquet”)

дбутилс

При использовании дбутилсследует использовать полный путь DBFS, как в командах Spark. Форматирование, зависящее от языка, для пути DBFS различается в зависимости от используемого языка.

%fs
ls dbfs:/mnt/test_folder/test_folder1/
dbutils.fs.ls(‘dbfs:/mnt/test_folder/test_folder1/’)
dbutils.fs.ls(“dbfs:/mnt/test_folder/test_folder1/”)

Примечание

Указание dbfs: не требуется при использовании команд дбутилс или Spark. Путь dbfs:/mnt/test_folder/test_folder1/ эквивалентен /mnt/test_folder/test_folder1/ .

Команды оболочки

Команды оболочки не распознают путь ДФБС. Вместо этого DBFS и файлы в используются с тем же синтаксисом, что и любая другая папка в файловой системе.

Bash

ls /dbfs/mnt/test_folder/test_folder1/
cat /dbfs/mnt/test_folder/test_folder1/file_name.txt

Python

import os
os.listdir('/dbfs/mnt/test_folder/test_folder1/’)

Scala

import java.io.File
val directory = new File("/dbfs/mnt/test_folder/test_folder1/")
directory.listFiles