使用文件上传页创建或修改表允许上传 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
。 - 行跨越多行 (默认启用):列的值是否可以跨文件中的多行。
- 允许注释(默认启用):文件中是否允许注释。
- 允许单引号(默认已启用):文件中是否允许单引号。
- 推理时间戳(默认已启用):是否尝试将时间戳字符串推理为 。
-
自动检测列类型 (默认启用):自动检测文件内容的列类型。 可以在预览表中编辑类型。 如果设置为 false,则所有列类型都推断为
- 对于 JSON,可以使用以下选项:
-
自动检测列类型 (默认启用):自动检测文件内容的列类型。 可以在预览表中编辑类型。 如果设置为 false,则所有列类型都推断为
STRING
。 - 行跨越多行 (默认禁用):列的值是否可以跨越文件中的多行。
- 允许注释:文件中是否允许注释。
- 允许单引号:文件中是否允许单引号。
- 推断时间戳:是否尝试将时间戳字符串推断为
TimestampType
。
-
自动检测列类型 (默认启用):自动检测文件内容的列类型。 可以在预览表中编辑类型。 如果设置为 false,则所有列类型都推断为
编辑格式选项时,数据预览会自动更新。
注意
上传多个文件时,以下规则适用:
- 标头设置适用于所有文件。 确保标头在所有上传的文件中始终不存在或存在,以避免数据丢失。
- 上传的文件通过将所有数据追加为目标表中的行来合并。 不支持在文件上传期间联接或合并记录。
列名称和类型
可以编辑列名称和类型。
若要编辑类型,请单击该类型的图标。
注意
不能编辑
STRUCT
或ARRAY
的嵌套类型。若要编辑列名,请单击列顶部的输入框。
列名不支持逗号、反斜杠或 unicode 字符(如表情符号)。
默认情况下,CSV 和 JSON 文件的列数据类型会被自动推断。 可以通过禁用高级属性>自动检测列类型来将所有列解释为STRING
类型。
注意
- 架构推理会尽力检测列类型。 更改列类型可能会导致某些值被转换为
NULL
,如果这些值无法正确转换为目标数据类型。 不支持将BIGINT
类型转换为DATE
列或TIMESTAMP
列。 Databricks 建议先创建表,然后使用 SQL 函数转换这些列。 - 若要支持具有特殊字符的表列名,可以在文件上传页中创建或修改表时利用列映射。
- 若要向列添加注释,请创建表并导航到 目录资源管理器 ,可在其中添加注释。
支持的数据类型
使用文件上传页创建或修改表支持以下数据类型。 有关各种数据类型的详细信息,请参阅 SQL 数据类型。
数据类型 | 说明 |
---|---|
BIGINT |
8 字节带符号整数。 |
BOOLEAN |
布尔(true 、false )值。 |
DATE |
值包括字段年、月和日的值,不包含时区。 |
DOUBLE |
8 字节双精度浮点数 |
STRING |
字符串值。 |
TIMESTAMP |
由字段 year、month、day、hour、minute 和 second 的值构成的值,包含会话本地时区。 |
STRUCT |
具有字段序列描述的结构的值。 |
ARRAY |
包含类型元素序列的值elementType 。 |
DECIMAL(P,S) |
具有最大精度 P 和固定位数 S 的数字。 |
已知问题
将 BIGINT
转换为不可转换的类型(例如日期格式为“yyyy”的 DATE
)可能会触发错误。