Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
, sprawdź, czy usługa SQL databricks
Databricks Runtime 18 LTS lub nowsza
Important
Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.
Kopiuje plik do docelowej ścieżki i zwraca referencję FILE do skopiowanego pliku. Pomijam destination kopiowanie pliku do pamięci zarządzanej przez Unity Catalog, która konwertuje FILE EXTERNAL referencję na referencję FILE MANAGED .
Składnia
copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
Możesz przekazywać argumenty pozycjonalnie lub po imieniu. Po przekazaniu argumentu po imieniu, wszystkie kolejne argumenty muszą być również przekazywane po imieniu. Więcej informacji można znaleźć w artykule wywołanie parametrów o nazwie (nazwane parametry).
Arguments
-
file: WartośćFILEdo skopiowania. -
destination: OpcjonalnySTRINGz pełną ścieżką docelową pliku, a nie tylko katalog. Po pominięciu pliku jest kopiowany do pamięci zarządzanej przez Unity Catalog, konwertując referencjęFILE EXTERNALw referencjęFILE MANAGED. -
if_file_exists_mode: OpcjonalneSTRING, które ustawia zachowanie, gdy plik już istnieje na ścieżce docelowej. Dotyczy tylko przy użyciu argumentudestination. Akceptowane wartości (nierozróżniające wielka litera) to:-
'error': To powoduje błąd. Jest to wartość domyślna. -
'overwrite': Nadpisuje istniejący plik. -
'skip': Pomija kopiowanie i zwraca odwołanieFILEdo istniejącego pliku.
-
Zwroty
Wartość FILE odwołująca się do skopiowanego pliku.
Notatki
- Pominięcie
destinationprzekształca odwołanieFILE EXTERNALdoFILE MANAGED. Azure Databricks automatycznie stosuje tę konwersję, gdy wstawiszFILE EXTERNALwartość do kolumnyFILE MANAGED. - Jeśli plik już istnieje na ścieżce docelowej, Azure Databricks domyślnie wyświetla błąd, chyba że ustawisz
if_file_exists_modenaoverwritelubskip. - Jeśli plik źródłowy nie istnieje, Azure Databricks zgłasza błąd. Aby zwrócić
NULLzamiast wywołać błąd w obu przypadkach, użyjtry_copy_filefunkcji.
Typowe warunki błędów
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
Więcej informacji można znaleźć w artykule Condition Error conditions in Azure Databricks.
Examples
Aby skopiować plik z jednego woluminu do drugiego:
SELECT copy_file(
to_file('/Volumes/source/data/input.csv'),
destination => '/Volumes/target/data/output.csv'
);
Aby skopiować pliki do woluminu docelowego z nazwą pliku na wiersz:
SELECT copy_file(
source_file,
destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
if_file_exists_mode => 'skip'
)
FROM staging_files;
Aby nadpisać miejsce docelowe, jeśli plik już istnieje:
SELECT copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);
Jeśli plik źródłowy nie istnieje, copy_file pojawia się błąd:
SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS