You need to enable JavaScript to run this app.
导航
SparkSQL 作业
最近更新时间:2025.10.30 21:15:22首次发布时间:2024.05.13 16:37:27
复制全文
我的收藏
有用
有用
无用
无用

简介

EMR Serverless 支持用户提交 SparkSQL 作业,适用于交互式数据查询、ETL任务和报表生成等场景。您可通过 EMR Serverless 控制台、SDK 及 JDBC 等多种方式完成 SparkSQL 的解析与任务提交,开箱即用,无需额外的集群管理。
本文将介绍通过控制台、SDK 及 JDBC 等多种方式提交 SparkSQL 作业的操作步骤。

说明

EMR Serverless 语法 100%兼容开源 Spark 3.5.1 版本,详细语法可参考:Spark 3.5.1 语法

准备工作

  • 已创建 EMR Serverless 队列。 具体操作可参考:创建资源队列
  • 已创建 Spark SQL 计算组,且拥有该计算组的 Developer/Admin 权限。详细操作请参考:队列权限

SparkSQL 作业分类

EMR Serverless Spark 支持如下两种 SparkSQL 作业。

普通 SparkSQL 作业

使用公共队列或独占队列中的 Default 计算组时,您提交任务,会临时给您拉起一个独享的 SparkSQL 作业,您可以定制化的设置 SparkSQL 任务中,Driver/Executor 所用的 CPU/Memory 等参数。

预拉起 SparkSQL 作业

当您使用独占队列中的 Spark SQL Warehouse 计算组时,该计算组存在 SQL 专用资源,使用该计算组提交 SparkSQL 作业,即可提交到专属的预拉起服务上,享受低 overhead、低延迟等特性,无需申请临时资源,作业最快可以在秒级完成。在 SQL 专用资源紧张时,EMR Serverless Spark 还可以自动复用计算组中的弹性资源,实现任务资源弹性。

说明

因为计算组为预拉起,所以 SQL 中设置的 Driver/Exeutor CPU/Memory 无法生效,如果有定制化的集群规格需求,请提工单联系火山引擎技术人员。

操作步骤

通过控制台提交作业

  1. 登录 EMR Serverless 控制台,选择目标队列。

  2. 进入编辑作业页面,有如下两种方式:

    在队列详情页中,点击作业提交,进入编辑作业页面。
    Image

  3. 在作业编辑框的右上角,开发类型选择 SparkSQL。

  4. 在作业编辑框中进行 SparkSQL 作业的编辑,编辑完成后,可通过编辑框左下角的格式化按钮,对编辑中的作业进行规范化。

  5. 完成 SQL 作业编辑后,您可以通过控制台右上角的队列计算组来选择计算资源,完成后点击左下角的运行按钮,提交作业。

  6. 作业提交完成后,会弹出提交成功的标识,并在下方的查询日志中,会显示您本次提交的作业id,以及当前的任务状态,您可进一步在作业管理处查看详细任务情况。

Image

说明

  • 任务提交至 EMR Serverless 集群后,则会在查询日志中显示 Spark Web UI,你可点击打开链接,在 Web UI 详细查看当前任务的执行情况。任务执行成功后,则会为您显示当前查询的结果。
  • 控制台支持下载查询日志、查询结果及查询代码,文件默认以 csv 格式存储。
  • 控制台还可以在查询结果页签,点击放大镜按钮,输入关键字,搜索结果中的关键信息。
  • 历史记录页签中,可以查看当前队列历史作业的结果以及代码等。
  • 如果 SQL 存在问题,则会解析失败,并提示错误原因。常见解析失败原因详见:常见问题

通过 SDK 提交 SparkSQL 作业

目前 EMR Serverless 支持 Java 和 Python 两类 SDK。Java SDK 使用方式请参考:Java Query SDK;Python SDK 使用方式请参考:Python Query SDK

通过 JDBC 提交 SparkSQL 作业

通过 JDBC 方式提交 Spark SQL 时,必须指定 Spark 计算组,Default 计算组不支持通过 JDBC 方式提交作业。使用方式请参考文档:JDBC 使用