適用於:
Databricks SQL
執行時間 18 LTS 及以上
Important
這項功能位於 測試版 (Beta) 中。 工作區管理員可以從 「預覽 」頁面控制對此功能的存取。 請參閱 管理 Azure Databricks 預覽。
將字串或二進位內容上傳至目的地路徑,並回傳 FILE 上傳檔案的參考。
Syntax
create_file(content => content
[, destination_path => path ]
[, if_file_exists => mode ]
[, content_type => content_type ])
你可以依位置或名稱傳遞參數。 當你以名稱傳遞參數後,接下來所有的參數也必須以名稱傳遞。 欲了解更多資訊,請參閱 命名參數調用。
Arguments
-
content: ASTRING或BINARY表達式,內容可儲存為檔案。 ASTRING以 UTF-8 編碼位元組儲存。 -
destination_path:一個可選STRING上傳內容的路徑。 -
if_file_exists:一個可選STRING的選項,當目標路徑已有檔案時,設定行為。 只適用於使用該destination_path論證時。 接受的值(大小寫不區分)包括:-
'error':會產生錯誤。 這是預設值。 -
'overwrite': 覆蓋現有檔案。 -
'skip': 跳過上傳並回傳FILE對現有檔案的參考。
-
-
content_type: 一個可選STRING的檔案,用來指定檔案的內容類型。 若未提供,內容型別將從輸入位元組推斷。
Returns
一個 FILE 參考已上傳檔案的值。
Notes
- 如果你使用
destination_path,檔案會以原子方式上傳到該路徑。 你必須有寫入權限,目標是 Unity 目錄的磁碟區。 - 如果目標路徑已經有檔案存在,Azure Databricks 預設會報錯,除非你設定
if_file_exists為overwrite或skip。
常見錯誤條件
CREATE_FILE_ERROR.FILE_ALREADY_EXISTSCREATE_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZEDCREATE_FILE_ILLEGAL_USAGE.CONTENT_REQUIREDCREATE_FILE_ILLEGAL_USAGE.IF_FILE_EXISTS_WITHOUT_DESTINATIONCREATE_FILE_ILLEGAL_USAGE.IF_FILE_EXISTS_MODE
欲了解更多資訊,請參閱 Azure Databricks 中的錯誤條件。
Examples
要在指定路徑上將字串儲存為新檔案:
SELECT create_file(
content => 'hello, world',
destination_path => '/Volumes/my_catalog/my_schema/my_volume/greetings.txt'
);
要儲存原始位元組並明確設定內容類型:
SELECT create_file(
content => my_binary_col,
destination_path => '/Volumes/my_catalog/my_schema/my_volume/image.png',
content_type => 'image/png'
)
FROM raw_uploads;
如果目的地已有檔案,要跳過上傳:
SELECT create_file(
content => my_binary_col,
destination_path => '/Volumes/my_catalog/my_schema/my_volume/report.pdf',
if_file_exists => 'skip'
);
若 destination_path 未設定, if_file_exists 則會產生錯誤:
SELECT create_file(content => 'data', if_file_exists => 'overwrite');
Error: CREATE_FILE_ILLEGAL_USAGE.IF_FILE_EXISTS_WITHOUT_DESTINATION