#python #pyspark #databricks #apache-commons-dbutils
Вопрос:
У меня есть файл, который я могу видеть в своем текущем рабочем каталоге:
%sh
pwd
ls
Результатом вышесказанного является:
/databricks/driver
conf
sample.csv
logs
Я хочу переместить sample.csv
файл отсюда в Workspace/Shared
каталог, для которого я использую dbutils.fs.mv
:
dbutils.fs.mv("dbfs:/databricks/driver/sample.csv","dbfs:/Workspace/Shared/")
но это дает ошибку, так как java.is.FileNotFoundException:dbfs:/databricks/driver/sample.csv
Как мне устранить эту ошибку?
Ответ №1:
когда вы выполняете команду на via %sh
, она выполняется на узле драйвера, поэтому файл является локальным для него. Но вы пытаетесь скопировать файл, поскольку он уже находится в DBFS, а затем он не найден. Вам нужно изменить схему с dbfs
до file
, чтобы указать на файл на узле драйвера, вот так:
dbutils.fs.mv("file:///databricks/driver/sample.csv","dbfs:/Workspace/Shared/")
Комментарии:
1. Поэтому, если я хочу скопировать файл в каталог моей рабочей области в databricks (вкладка рабочая область в пользовательском интерфейсе databricks), следует ли мне использовать
file
илиdbfs
. Я попробовал и то, и другое, и оно выполняется без ошибок, но я не вижу файл в каталоге моего рабочего пространства через пользовательский интерфейс2. Чтобы сделать видимым в пользовательском интерфейсе, вам нужно использовать dbfs. Но ваш исходный файл должен быть указан через файл://