全部產品
Search
文件中心

E-MapReduce:SparkSQL開發快速入門

更新時間:Jun 03, 2026

EMR Serverless Spark支援通過SQL代碼編輯和運行任務。本文帶您快速體驗SQL的建立、啟動和營運等操作。

前提條件

步驟一:建立並發布開發工作單位

重要

任務必須先發布,然後才能在任務編排過程中使用。

  1. 進入資料開發頁面。

    1. 登入E-MapReduce控制台

    2. 在左側導覽列,選擇EMR Serverless > Spark

    3. Spark頁面,單擊目標工作空間名稱。

    4. 在EMR Serverless Spark頁面,單擊左側導覽列中的数据开发

  2. 建立users_task任務。

    1. 开发目录頁簽下,單擊image表徵圖。

    2. 新建對話方塊中,輸入名稱(例如users_task),類型使用預設的SparkSQL,然後單擊确定

    3. 拷貝如下代碼到新增的Spark SQL頁簽(users_task)中。

      CREATE TABLE IF NOT EXISTS students (
        name VARCHAR(64),          
        address VARCHAR(64)       
      )
      USING PARQUET  
      PARTITIONED BY (data_date STRING)              
      OPTIONS (
        'path'='oss://<bucketname>/path/'
      );
      INSERT OVERWRITE TABLE students PARTITION (data_date = '${ds}') VALUES
        ('Ashua Hill', '456 Erica Ct, Cupertino'),
        ('Brian Reed', '723 Kern Ave, Palo Alto');

      目前支援以下基礎日期變數,預設為昨天。

      變數

      資料類型

      說明

      {data_date}

      str

      表示日期資訊的變數,格式為YYYY-MM-DD

      例如,2023-09-18。

      {ds}

      str

      {dt}

      str

      {data_date_nodash}

      str

      表示日期資訊的變數,格式為YYYYMMDD

      例如,20230918。

      {ds_nodash}

      str

      {dt_nodash}

      str

      {ts}

      str

      表示時間戳記,格式為YYYY-MM-DDTHH:MM:SS

      例如,2023-09-18T16:07:43。

      {ts_nodash}

      str

      表示時間戳記,格式為YYYYMMDDHHMMSS

      例如,20230918160743。

    4. 在資料庫下拉式清單中選擇一個資料庫,在會話下拉式清單中選擇一個已啟動的會話執行個體。

      您也可以在下拉式清單中選擇创建 SQL 会话,直接建立一個新的會話執行個體。會話管理更多介紹,請參見管理SQL會話

    5. 單擊运行,執行建立的任務。

      返回結果資訊可以在下方的运行结果中查看。如果有異常,則可以在运行问题中查看。

  3. 發布users_task任務。

    說明

    任務指定的參數會伴隨任務一起發布,並成為產線運行任務時使用的參數;而在SQL編輯器中執行的任務則使用會話中的參數。

    1. 在新增的Spark SQL頁簽中,單擊发布

    2. 在彈出的對話方塊中,可以輸入發布資訊,然後單擊确定

  4. 建立users_count任務。

    1. 开发目录頁簽下,單擊image表徵圖。

    2. 新建對話方塊中,輸入名稱(例如users_count),類型使用預設的SparkSQL,單擊确定

    3. 拷貝如下代碼到新增的Spark SQL任務頁簽(users_count)中。

      SELECT COUNT(1) FROM students;
    4. 在資料庫下拉式清單中選擇一個資料庫,在會話下拉式清單中選擇一個已啟動的會話執行個體。

      您也可以在下拉式清單中選擇创建 SQL 会话,直接建立一個新的會話執行個體。會話管理更多介紹,請參見管理SQL會話

    5. 單擊运行,執行建立的任務。

      返回結果資訊可以在下方的运行结果中查看。如果有異常,則可以在运行问题中查看。

  5. 發布users_count任務。

    說明

    任務指定的參數會伴隨任務一起發布,並成為產線運行任務時使用的參數;而在SQL編輯器中執行的任務則使用會話中的參數。

    1. 在新增的Spark SQL任務頁簽中,單擊发布

    2. 在彈出的對話方塊中,可以輸入發布資訊,然後單擊确定

步驟二:建立工作流程及其節點

  1. 在左側導覽列中,單擊任务编排

  2. 任务编排頁面,單擊创建工作流

  3. 创建工作流面板中,輸入工作流名称(例如,spark_workflow_task),然後單擊下一步

    其他设置地區的參數,請根據您的實際情況配置,更多參數資訊請參見管理工作流程

  4. 添加users_task節點。

    1. 在建立的節點畫布中,單擊添加节点

    2. 彈出添加节点面板,在来源文件路径下拉式清單中選擇發行的任務users_task,然後單擊保存

  5. 添加users_count節點。

    1. 單擊添加节点

    2. 彈出添加节点面板,在来源文件路径下拉式清單中選擇發行的任務users_count,在上游节点下拉式清單中選擇users_task,單擊保存

  6. 在建立的節點畫布中,單擊发布工作流

    此時畫布中包含 users_taskusers_count 兩個 SQL 類型節點,兩者通過箭頭串連表示執行依賴關係。

  7. 发布對話方塊中,可以輸入發布資訊,然後單擊确定

步驟三:運行工作流程

  1. 任务编排頁面,單擊建立工作流程(例如,spark_workflow_task)的工作流名称

  2. 工作流实例列表頁面,單擊运行

    說明

    在配置了調度周期後,您也可以在任务编排頁面通過左側的開關按鈕啟動調度。

  3. 运行工作流對話方塊中,單擊确定

步驟四:查看執行個體狀態

  1. 任务编排頁面,單擊目標工作流程名稱(例如,spark_workflow_task)。

  2. 工作流实例列表頁面,您可以查看對應的所有工作流程執行個體,以及各工作流程執行個體的已耗用時間、運行狀態等。

    頁面上方以柱狀圖展示各日期的工作流程運行狀態分布,下方表格還包含工作流程運行ID版本運行方式節點數量調度時間啟動時間結束時間等列。

  3. 單擊工作流实例列表地區的工作流运行 ID,或單擊上方的工作流实例图頁簽,可以查看對應的工作流程執行個體圖。

  4. 單擊目標節點執行個體,在彈出的節點資訊框中,您可以根據需要操作或查看資訊。

    關於此部分內容的相關操作及詳細介紹,請參見查看節點執行個體

    節點資訊框中展示任務的啟動時間結束時間運行狀態已耗用時間等運行詳情,並提供重跑終止運行置成功等操作按鈕。

    例如,單擊Spark UI跳轉至Spark Jobs頁面,可以查看Spark任務的即時資訊。

    Spark Jobs 頁面展示已完成作業列表,包含 Job IdDescriptionSubmittedDurationStages: Succeeded/TotalTasks: Succeeded/Total 等列,可確認各作業的執行狀態與耗時。

  5. 單擊任务运行 ID,進入任务历史頁面,可以查看指標、診斷和日誌資訊。

    任務總覽頁簽的基礎資訊地區,可查看運行狀態、任務名稱、任務運行 ID、任務類型、引擎版本及 Fusion 加速狀態等資訊。

步驟五:工作流程營運

任务编排頁面,單擊目標工作流程名稱,進入工作流实例列表頁面。您可以:

  • 工作流信息地區,可以編輯部分參數。

  • 工作流实例列表地區,可以查看所有工作流程。單擊工作流运行 ID,可以進入工作流程執行個體圖頁面。

    工作流程執行個體圖頁面展示任務節點的依賴關係及運行狀態。樣本中,users_task(SQL)為上遊節點,users_count(SQL)為下遊節點,兩者通過連線表示依賴關係,節點均顯示運行成功(綠色對勾)。

步驟六:查看資料

  1. 在左側導覽列中,單擊数据开发

  2. 建立SparkSQL開發,然後輸入並運行以下命令查看錶的詳細資料。

    SELECT * FROM students;

    返回資訊如下。

    返回結果包含 nameaddressdata_date 三列,共兩條記錄:Ashua Hill(地址:456 Erica Ct, Cupertino,日期:2024-01-01)和 Brian Reed(地址:723 Kern Ave, Palo Alto,日期:2024-01-01)。

相關文檔