使用文件上传创建或修改表
使用“使用文件上传创建或修改表”页,可以上传 CSV、TSV 或 JSON、Avro、Parquet 或文本文件以创建或覆盖托管的 Delta Lake 表。
可以在 Unity 目录或 Hive 元存储中创建托管的 Delta 表。
重要
- 必须有权访问正在运行的计算资源,并具有在目标架构中创建表的权限。
- 工作区管理员可以禁用“使用文件上传创建或修改表”页。
使用该 UI,可以通过从本地计算机导入小型 CSV、TSV、JSON、Avro、Parquet 或文本文件来创建 Delta 表。
- “使用文件上传创建或修改表”页支持一次最多上传 10 个文件。
- 上传的文件的总大小必须在 2 GB 以下。
- 该文件必须是 CSV、TSV、JSON、Avro、Parquet 或文本文件,并且扩展名为“.csv”、“.tsv”(或“.tab”)、“.json”、“.avro”、“.parquet”或“.txt”。
- 不支持压缩的文件,例如
zip
和tar
文件。
上传文件
- 单击 “新建”>“添加数据”。
- 单击“创建或修改表”。
- 请单击文件浏览按钮或直接在放置区域中拖放文件。
注意
导入的文件将上传到帐户中的安全内部位置,这里每天都会进行垃圾回收。
预览、配置和创建表
无需连接到计算资源即可将数据上传到暂存区域,但必须选择活动计算资源来预览和配置表。
配置上传表的选项时,可以预览 50 行数据。 单击文件名下的网格或列表按钮,可以切换数据的呈现方式。
Azure Databricks 将托管表的数据文件存储在为包含架构配置的位置中。 需要适当的权限才能在架构中创建表。
执行以下操作,选择要在其中创建表的所需架构:
- (仅针对支持 Unity Catalog 的工作区)你可以选择一个目录或旧版
hive_metastore
。 - 选择架构。
- (可选)编辑表名。
注意
可以使用下拉菜单来选择“覆盖现有表”或“创建新表”。 尝试创建存在名称冲突的新表的操作会显示一条错误消息。
若要创建表,请单击页面底部的“创建”。
格式选项
格式选项取决于上传的文件格式。 常用格式选项显示在标题栏中,而不太常用的选项位于“高级属性”对话框中。
- 对于 CSV,可以使用以下选项:
- 第一行包含标题(默认情况下启用):该选项指定 CSV/TSV 文件是否包含标题。
- 列分隔符:列之间的分隔符。 仅允许单个字符,且不支持反斜杠。 对于 CSV 文件,默认为英文逗号。
- 自动检测列类型(默认情况下启用):自动检测文件内容中的列类型。 可以在预览表中编辑类型。 如果此选项设置为 false,则所有列类型均推断为
STRING
。 - 行跨越多个行(默认情况下启用):一个列的值是否可以跨越文件中的多行。
- 合并多个文件的架构:是否跨多个文件推理架构并合并每个文件的架构。 如果禁用,则会使用一个文件中的架构。
- 对于 JSON,可以使用以下选项:
- 自动检测列类型(默认情况下启用):自动检测文件内容中的列类型。 可以在预览表中编辑类型。 如果此选项设置为 false,则所有列类型均推断为
STRING
。 - 行跨越多行(默认启用):一个列的值是否可以跨越文件中的多行。
- 允许注释(默认启用):文件中是否允许注释。
- 允许单引号(默认已启用):文件中是否允许单引号。
- 推理时间戳(默认已启用):是否尝试将时间戳字符串推理为
TimestampType
。
- 自动检测列类型(默认情况下启用):自动检测文件内容中的列类型。 可以在预览表中编辑类型。 如果此选项设置为 false,则所有列类型均推断为
- 对于 JSON,可以使用以下选项:
- 自动检测列类型(默认情况下启用):自动检测文件内容中的列类型。 可以在预览表中编辑类型。 如果此选项设置为 false,则所有列类型均推断为
STRING
。 - 行跨越多个行(默认情况下启用):一个列的值是否可以跨越文件中的多行。
- 允许注释:文件中是否允许注释。
- 允许单引号:文件中是否允许单引号。
- 推断时间戳:是否尝试将时间戳字符串推断为
TimestampType
。
- 自动检测列类型(默认情况下启用):自动检测文件内容中的列类型。 可以在预览表中编辑类型。 如果此选项设置为 false,则所有列类型均推断为
编辑格式选项时,数据预览会自动更新。
注意
上传多个文件时,以下规则适用:
- 标头设置适用于所有文件。 确保标头在所有上传的文件中始终不存在或存在,以避免数据丢失。
- 上传的文件通过将所有数据附加为目标表中的行来合并。 不支持在文件上传期间联接或合并记录。
列名称和类型
可以编辑列名称和类型。
若要编辑类型,请单击该类型的图标。
注意
无法编辑
STRUCT
或ARRAY
的嵌套类型。若要编辑列名,请单击列顶部的输入框。
列名不支持逗号、反斜杠或 Unicode 字符(例如表情符号)。
对于 CSV 和 JSON 文件,在默认情况下会推断列数据类型。 可以通过禁用“高级属性”>“自动检测列类型”,将所有列解释为 STRING
类型。
注意
支持的数据类型
“使用文件上传创建或修改表”页支持以下数据类型。 有关各种数据类型的详细信息,请参阅 SQL 数据类型。
数据类型 | 说明 |
---|---|
BIGINT |
8 字节带符号整数。 |
BOOLEAN |
布尔(true 、false )值。 |
DATE |
由字段 year、month 和 day 的值构成的值,不包含时区。 |
DOUBLE |
8 字节双精度浮点数 |
STRING |
字符串值。 |
TIMESTAMP |
由字段 year、month、day、hour、minute 和 second 的值构成的值,包含会话本地时区。 |
STRUCT |
值,其结构通过一系列字段来描述。 |
ARRAY |
值,包含具有类型的元素序列elementType 。 |
DECIMAL(P,S) |
具有最大精度 P 和固定位数 S 的数字。 |
已知问题
将 BIGINT
强制转换为 DATE
(例如以“yyyy”格式表示的日期)等不可强制转换的类型可能会引发错误。