适用于:
Databricks SQL
Databricks Runtime 18 LTS 及更高版本
Important
此功能在 Beta 版中。 工作区管理员可以从 预览 页控制对此功能的访问。 请参阅 Manage 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 引用上传文件的值。
备注
- 如果你使用
destination_path,文件会以原子方式上传到该路径。 你必须有写入权限,目标位置通常是Unity Catalog卷。 - 如果目标路径已经存在文件,Azure Databricks 默认会报错,除非你设置为
if_file_existsoverwrite或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