数据格式选项

Azure Databricks 为 Apache Spark 原生支持的所有数据格式提供内置关键字绑定。 Azure Databricks 使用 Delta Lake 作为读取和写入数据和表的默认协议,而 Apache Spark 使用 Parquet。 以下章节介绍了在 Azure Databricks 上查询每种数据格式时可用的选项和配置。

大多数格式都支持通过 compression 选项进行写入压缩。 关于每种格式的支持值,请参见 DataFrameWriter 选项。 Azure Databricks还可以直接读取多种格式的预压缩文件,并在必要时解压缩Azure Databricks上的压缩文件

有关 Apache Spark 数据源的详细信息,请参阅通用加载/保存函数泛型文件源选项

开放表格格式

支持ACID事务、模式演化及跨引擎互操作性的表格式。

Format Description
Delta Lake Azure Databricks 上读写数据及表的默认格式。
冰山 可以读写 Iceberg 表,并与外部 Iceberg 引擎互操作。
OpenSharing 使用开放共享协议读取共享表和数据。

列式格式

针对分析读取性能和压缩率进行优化的二进制列式格式。

Format Description
Parquet Apache Spark 默认采用列式格式,具有高效的压缩和编码功能。
ORC 一种内置压缩并支持轻量级索引的列式格式。

基于文本的格式

适用于模式灵活或不断演变的交换、配置和记录的人类可读格式。

Format Description
JSON 读取和写入JSON文件,包括多行记录和模式推断选项。
CSV 读取和写入分隔符文本文件,并提供用于标头、分隔符和格式不正确记录的选项。
XML 通过指定行标签和模式来读写XML文件。
文本 一次一行或一行地读取和写入纯文本文件。

二进制与专用格式

二进制序列化格式和Azure Databricks专用数据源。

Format Description
Avro 读取和写入Avro文件,并在流媒体中处理Avro编码的载荷。
MLflow 试验 使用自定义 mlflow-experiment 关键字加载 MLflow 实验运行数据。

非结构化数据

用于存储和处理文档、图片、音频及其他非结构化文件的格式和类型。

Format Description
处理非结构化数据 存储、管理和处理非结构化数据,如文档、图片和音频。
二进制 将文件读取为原始二进制记录,包括图像和其他非结构化数据。
Image 加载机器学习工作负载的图像数据。 Databricks 建议将图片加载为 binary 数据。
FILE 存储对非结构化文件的受治理引用,而不是使用 BINARYSTRING
将文件作为 FILE 类型导入 使用 SQL、表值函数和 Auto Loader,将非结构化文件作为 FILE 引用提取到表中。
带有UDF的进程文件 读取文件字节,提取图像和视频元数据,并生成带有UDF的派生文件。

半结构化数据

湖屋中处理嵌套和半结构化数据的模式和函数。

Format Description
模型半结构化数据 在Variant、JSON字符串、结构和映射中选择,用于存储半结构化数据。
变量 使用 VARIANT 类型存储半结构化数据,以优化读写。
转换复杂数据类型 在Apache Spark中操作结构体、数组和映射。
高阶函数 利用内置的高阶函数对数组和映射进行变换。