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 文档。