базы данных python dbutils не могут перемещать файл из одного каталога в другой

#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. Но ваш исходный файл должен быть указан через файл://