Google Cloud Serverless for Apache Spark 可让您运行 Spark 工作负载,而无需预配和管理自己的 Dataproc 集群。您可以通过以下两种方式运行 Serverless for Apache Spark 工作负载:
批处理工作负载
使用Google Cloud 控制台、Google Cloud CLI 或 Dataproc API 向 Serverless for Apache Spark 服务提交批处理工作负载。该服务在托管式计算基础架构上运行工作负载,并根据需要自动扩缩资源。Serverless for Apache Spark 仅在执行工作负载时产生费用。
如需开始使用,请参阅运行 Apache Spark 批量工作负载。
交互式会话
在 Serverless for Apache Spark 交互式会话期间,在 Jupyter 笔记本中编写和运行代码。您可以通过以下方式创建笔记本会话:
- 在 BigQuery Studio 笔记本中运行 PySpark 代码。 使用 BigQuery Python 笔记本创建基于 Spark Connect 的 Serverless for Apache Spark 交互式会话。每个 BigQuery 笔记本只能有一个与之关联的活跃 Serverless for Apache Spark 会话。 
- 使用 Dataproc JupyterLab 插件,通过您创建和管理的模板创建多个 Jupyter 笔记本会话。在本地机器或 Compute Engine 虚拟机上安装插件后,JupyterLab 启动器页面上会显示与不同 Spark 内核配置对应的不同卡片。点击相应卡片以创建 Serverless for Apache Spark 笔记本会话,然后开始在笔记本中编写和测试代码。 - 借助 Dataproc JupyterLab 插件,您还可以使用 JupyterLab 启动器页面执行以下操作: - 创建 Dataproc on Compute Engine 集群。
- 将作业提交到 Compute Engine 上的 Dataproc 集群。
- 查看 Google Cloud 和 Spark 日志。
 
Serverless for Apache Spark 与 Dataproc on Compute Engine
如果您想要预配和管理基础架构,然后在 Spark 和其他开源处理框架上执行工作负载,请使用 Dataproc on Compute Engine。下表列出了 Dataproc on Compute Engine 和 Serverless for Apache Spark 的主要区别。
| 能力 | Serverless for Apache Spark | Dataproc on Compute Engine | 
|---|---|---|
| 处理框架 | 批处理工作负载:Spark 3.5 及更低版本 交互式会话:Spark 3.5 及更低版本 | Spark 3.5 及更低版本。其他开源框架,例如 Hive、Flink、Trino 和 Kafka | 
| 无服务器 | 是 | 否 | 
| 启动时间 | 60 秒 | 90 秒 | 
| 基础架构控制 | 否 | 是 | 
| 资源管理 | 基于 Spark | 基于 YARN | 
| GPU 支持 | 是 | 是 | 
| 交互式会话 | 是 | 否 | 
| 自定义容器 | 是 | 否 | 
| 虚拟机访问权限(例如 SSH) | 否 | 是 | 
| Java 版本 | Java 17、11 | 支持过往版本 | 
安全合规性
Serverless for Apache Spark 遵循 Dataproc 遵守的所有数据驻留、CMEK、VPC-SC 和其他安全要求。
批处理工作负载功能
您可以运行以下 Serverless for Apache Spark 批量工作负载类型:
- PySpark
- Spark SQL
- Spark R
- Spark(Java 或 Scala)
您可以在提交 Serverless for Apache Spark 批量工作负载时指定 Spark 属性。