请说明 Apache Iceberg 与 Apache Spark 的集成方式,并描述在 Spark 中读取 Iceberg 表的具体步骤。
考察说明
考查对 Iceberg 与 Spark 集成机制及读取操作的理解。
回答思路
- 【回答框架 1】Iceberg 通过提供 Spark 数据源(DataSourceV2)实现集成,Spark 3.x 使用 Catalog 插件(如 HadoopCatalog 或 HiveCatalog)注册 Iceberg 表,Spark 2.4 则使用数据源路径方式。
- 【回答框架 2】在 Spark 中读取 Iceberg 表,可通过 SQL 指定表名(如 iceberg.db.table)或使用 DataFrameReader 的 format("iceberg") 加载路径,Spark 会自动应用 Iceberg 的元数据管理,支持快照隔离和时间旅行。
- 【回答框架 3】集成时需在 Spark 配置中设置 catalog 实现类,如 spark.sql.catalog.iceberg=org.apache.iceberg.spark.SparkCatalog,并指定 warehouse 路径,确保 Spark 能识别 Iceberg 表。
- 【回答框架 4】读取操作支持分区裁剪和谓词下推,Iceberg 会利用元数据过滤文件,减少扫描数据量,提升查询性能。
- 【关键点 1】Spark 3.x 通过 Catalog 集成 Iceberg,Spark 2.4 使用数据源路径。
- 【关键点 2】读取时使用 format("iceberg") 或 SQL 指定表名。
- 【关键点 3】配置 catalog 实现类及 warehouse 是集成关键。
- 【关键点 4】Iceberg 支持快照隔离和时间旅行读取。