将 Apache Spark 与 Lakehouse 运行时目录搭配使用

Apache Spark 通过 Lakehouse 运行时目录连接到无边界 Lakehouse。此集成使用 Apache Iceberg REST 目录端点提供用于发现和管理 Apache Iceberg 表的标准接口。

如需开始使用,请参阅以下指南:

Spark 配置属性

使用以下属性配置 Spark 会话或作业提交,以连接到 Apache Iceberg REST 目录端点:

属性 值 说明
spark.sql.catalog.CATALOG_NAME org.apache.iceberg.spark.SparkCatalog 注册 Apache Iceberg Spark 目录实现。
spark.sql.catalog.CATALOG_NAME.type rest 指定 REST 目录类型。
spark.sql.catalog.CATALOG_NAME.uri https://biglake.googleapis.com/iceberg/v1/restcatalog 指定 Lakehouse 运行时目录中的 Apache Iceberg REST 目录端点 URI。如需将请求路由到区域级端点,请使用 https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog。
spark.sql.catalog.CATALOG_NAME.warehouse bl://projects/PROJECT_ID/catalogs/CATALOG_ID 指定 Lakehouse 运行时目录中多存储桶目录的数据仓库路径。对于单存储桶目录,请使用 gs://CLOUD_STORAGE_BUCKET_NAME。
spark.sql.catalog.CATALOG_NAME.header.x-goog-user-project PROJECT_ID 指定 Lakehouse 运行时目录请求的结算和配额 Google Cloud 项目 ID。
spark.sql.catalog.CATALOG_NAME.rest.auth.type org.apache.iceberg.gcp.auth.GoogleAuthManager 为 Apache Iceberg REST 目录端点配置 Google Cloud 身份验证。
spark.sql.catalog.CATALOG_NAME.io-impl org.apache.iceberg.gcp.gcs.GCSFileIO 指定适用于 Apache Iceberg 的 Cloud Storage FileIO 实现。使用凭证分发模式时,此字段为必填项。
spark.sql.catalog.CATALOG_NAME.header.X-Iceberg-Access-Delegation vended-credentials 在凭据分发模式下,在加载表期间从 Lakehouse 运行时目录请求范围缩小的短期存储凭据。
spark.sql.extensions org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions 在 Spark 中启用 Apache Iceberg SQL 扩展和优化。
spark.sql.defaultCatalog CATALOG_NAME 可选:为 Spark 会话设置默认目录。

替换以下内容:

  • CATALOG_NAME:在 Spark 会话中配置的目录名称标识符(例如 my_catalog)。

  • LOCATION:使用区域端点时目录所在的 Google Cloud 区域(例如 us-central1)。

  • PROJECT_ID:您的 Google Cloud 项目 ID。

  • CATALOG_ID:Lakehouse 运行时目录中的目录 ID。

  • CLOUD_STORAGE_BUCKET_NAME:与单存储桶目录关联的 Cloud Storage 存储桶的名称。

如需了解更多配置详情,请参阅配置客户端应用和官方 Apache Iceberg Spark 文档。