日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

開發ODPS Spark任務

Spark on MaxCompute作業可通過Local模式、Cluster模式執行,此外,您也可在DataWorks中運行Spark on MaxCompute離線作業(Cluster模式),以便與其它類型執行節點集成和調度。本文為您介紹如何通過DataWorks實現Spark on MaxCompute作業的配置與調度。

前提條件

已創建ODPS Spark節點,詳情請參見創建并管理MaxCompute節點

使用限制

當ODPS Spark節點選擇Spark3.x版本時,若提交節點報錯,請提交工單聯系技術支持人員升級獨享調度資源組的版本。

背景信息

Spark on MaxCompute是MaxCompute提供的兼容開源Spark的計算服務。它在統一的計算資源和數據集權限體系基礎上,提供Spark計算框架,支持您以熟悉的開發使用方式提交運行Spark作業,滿足更豐富的數據處理分析需求。在DataWorks中,您可通過ODPS Spark節點實現Spark on MaxCompute任務的調度運行,以及與其他作業的集成操作。

Spark on MaxCompute支持使用Java、Scala和Python語言進行開發,并通過Local、Cluster模式運行任務,在DataWorks中運行Spark on MaxCompute離線作業時采用Cluster模式執行。更多關于Spark on MaxCompute運行模式的介紹,詳情請參見運行模式

準備工作

ODPS Spark節點支持使用Java/ScalaPython語言運行Spark on MaxCompute離線作業,不同語言開發步驟及配置界面存在差異,您可根據業務需要選擇使用。

Java/Scala

在ODPS Spark節點執行Java或Scala語言類型代碼前,您需先在本地開發好Spark on MaxCompute作業代碼,再通過DataWorks上傳為MaxCompute的資源。步驟如下:

  1. 準備開發環境。

    根據所使用系統類型,準備運行Spark on MaxCompute任務的開發環境,詳情請參見搭建Linux開發環境搭建Windows開發環境

  2. 開發Java/Scala代碼。

    在ODPS Spark節點執行Java或Scala語言類型代碼前,需先在本地或已有環境開發好Spark on MaxCompute代碼,建議使用Spark on MaxCompute提供的項目示例工程模板進行開發。

  3. 打包代碼并上傳至DataWorks。

    代碼開發完成后,需將其打包,并通過DataWorks上傳為MaxCompute資源,詳情請參見創建并使用MaxCompute資源

Python(使用默認Python環境實現)

DataWorks可通過將代碼在線寫入DataWorks Python資源的方式,實現PySpark作業開發,并通過ODPS Spark節點提交運行該代碼邏輯。DataWorks上創建Python資源,詳情請參見創建并使用MaxCompute資源;PySpark開發示例,詳情請參見PySpark開發示例

說明

該方式使用DataWorks提供的默認Python環境,可直接依賴的三方包有限,若默認環境無法滿足PySpark作業第三方依賴包的需求,可參考下文《開發語言:Python(使用自定義Python環境實現)》方式,自行準備Python環境執行任務。當然,您也可選擇對Python資源支持性更好的PyODPS 2節點PyODPS 3節點

Python(使用自定義Python環境實現)

若平臺提供的默認Python環境無法滿足您的業務需求,則可根據如下步驟自定義Python環境,執行Spark on MaxCompute任務。

  1. 本地準備Python環境。

    您可參考PySpark Python版本和依賴支持,根據業務需要配置可用的Python環境。

  2. 打包環境并上傳至DataWorks。

    將Python環境壓縮為一個Zip包,并通過DataWorks上傳為MaxCompute資源,作為后續運行Spark on MaxCompute任務的執行環境。詳情請參見創建并使用MaxCompute資源

配置項說明

DataWorks運行Spark on MaxCompute離線作業采用Cluster模式,在Cluster模式中,您需指定自定義程序入口mainmain運行結束(即狀態為SuccessFail)時,對應的Spark作業便會結束。此外,spark-defaults.conf中的配置需逐條加到ODPS Spark節點配置項中。例如,Executor的數量、內存大小和spark.hadoop.odps.runtime.end.point的配置。

說明

您無需上傳spark-defaults.conf文件,而是需將spark-defaults.conf文件中的配置都逐條加到ODPS Spark節點的配置項中。

Spark任務配置

參數

描述

對應的spark-submit命令

spark版本

包括Spark1.xSpark2.xSpark3.x版本。

說明

當ODPS Spark節點選擇Spark3.x版本時,若提交節點報錯,請提交工單聯系技術支持人員升級獨享調度資源組的版本。

語言

此處選擇Java/ScalaPython。請根據實際Spark on MaxCompute開發語言進行選擇。

選擇主資源

指定任務所使用的主JAR資源文件或主Python資源。

此處的資源文件需提前上傳至DataWorks并已提交,詳情請參見創建并使用MaxCompute資源

app jar or Python file

配置項

指定提交作業時的配置項。其中:

  • spark.hadoop.odps.access.idspark.hadoop.odps.access.keyspark.hadoop.odps.end.point無需配置,默認為MaxCompute項目的值(有特殊原因可顯式配置,將覆蓋默認值)。

  • 您無需上傳spark-defaults.conf文件,而是需將spark-defaults.conf中的配置逐條加到ODPS SPARK節點配置項中,例如Executor的數量、內存大小和spark.hadoop.odps.runtime.end.point的配置。

--conf PROP=VALUE

Main Class

配置主類名稱。當開發語言為Java/Scala時,需要配置該參數。

--class CLASS_NAME

參數

您可根據需要添加參數,多個參數之間用空格分隔。DataWorks支持使用調度參數,此處參數配置格式為${變量名}。配置完成后需在右側導航欄調度配置 > 參數處給變量賦值。

說明

調度參數支持的賦值格式請參見調度參數支持的格式

[app arguments]

選擇其他資源

您可根據需要,選擇使用如下資源。

  • jar資源:僅支持開發語言為Java/Scala時使用。

  • Python資源:僅支持開發語言為Python時使用。

  • file資源

  • archives資源:僅展示壓縮類型的資源。

此處的資源文件需提前上傳至DataWorks并已提交,詳情請參見創建并使用MaxCompute資源

不同資源分別對應如下命令:

  • --jars JARS

  • --py-files PY_FILES

  • --files FILES

  • --archives ARCHIVES

編輯代碼:簡單示例

以下以一個簡單示例為您介紹ODPS Spark節點的使用:判斷一個字符串是否可以轉換為數字。

  1. 創建資源。

    1. 數據開發頁面新建Python類型的資源,并命名為spark_is_number.py,詳情請參見創建并使用MaxCompute資源。代碼如下:

      # -*- coding: utf-8 -*-
      import sys
      from pyspark.sql import SparkSession
      
      try:
          # for python 2
          reload(sys)
          sys.setdefaultencoding('utf8')
      except:
          # python 3 not needed
          pass
      
      if __name__ == '__main__':
          spark = SparkSession.builder\
              .appName("spark sql")\
              .config("spark.sql.broadcastTimeout", 20 * 60)\
              .config("spark.sql.crossJoin.enabled", True)\
              .config("odps.exec.dynamic.partition.mode", "nonstrict")\
              .config("spark.sql.catalogImplementation", "odps")\
              .getOrCreate()
      
      def is_number(s):
          try:
              float(s)
              return True
          except ValueError:
              pass
      
          try:
              import unicodedata
              unicodedata.numeric(s)
              return True
          except (TypeError, ValueError):
              pass
      
          return False
      
      print(is_number('foo'))
      print(is_number('1'))
      print(is_number('1.3'))
      print(is_number('-1.37'))
      print(is_number('1e3'))
    2. 保存并提交資源。

  2. 在已創建的ODPS Spark節點中,根據配置項說明配置節點參數和調度配置參數,并保存提交節點。

    配置項

    說明

    spark版本

    Spark2.x

    語言

    Python

    選擇主python資源

    在下拉列表中選擇上述已創建的python資源spark_is_number.py

  3. 進入開發環境的運維中心,執行補數據,具體操作請參見執行補數據并查看補數據實例(新版)

    說明

    由于數據開發中的ODPS Spark節點沒有運行入口,因此您需要在開發環境的運維中心執行Spark任務。

  4. 查看返回結果。

    待補數據實例運行成功后,進入其運行日志的tracking URL中查看運行結果,如下:

    False
    True
    True
    True
    True

編輯代碼:進階示例

更多場景的Spark on MaxCompute任務開發,請參考:

后續步驟

當您完成當前節點的任務開發后,通常您可進行以下操作。

  • 調度配置:配置節點的周期性調度屬性。任務需要周期性調度運行時,您需要設置節點后續實際運行過程中的重跑屬性、調度依賴關系等,操作詳情請參見任務調度屬性配置概述

  • 任務調試:對當前節點的代碼進行測試運行,確認代碼邏輯符合預期,操作詳情請參見任務調試流程

  • 任務發布:完成所有開發相關操作后,您需要將所有任務節點進行發布,發布后節點即會根據調度配置結果進行周期性運行,操作詳情請參見發布任務

  • Spark作業診斷:MaxCompute為Spark作業提供Logview工具以及Spark Web-UI,您可通過作業日志檢查作業是否已正常提交并執行。

  • Spark常見問題:您可了解Spark執行過程中的常見問題,便于出現異常時快速排查解決。