這很重要
適用於無伺服器計算上的 Scala 的 Databricks Connect 處於 Beta 階段。
本教學課程提供如何使用無伺服器計算開始使用 Databricks Connect for Scala 的概觀。 它將逐步解說如何建置啟用 Unity Catalog 的計算資源(包括標準存取模式下的傳統計算資源或無伺服器計算資源)所需的相容 Scala JAR 檔案。
小提示
若要建立完全設定為在無伺服器計算上部署和執行 JAR 的 Scala 專案,您可以使用 Databricks 資產套件組合。 請參閱 使用 Databricks 資產套件組合建置 Scala JAR。
需求
您的本機開發環境必須符合 Databricks Connect for Scala 的需求。 請參閱 Databricks Connect 使用需求,其中包括下列項目:
Java 開發套件 (JDK)
SBT
Databricks CLI,針對無伺服器計算設定:
databricks auth login --configure-serverless --host <workspace-url>
步驟 1:建立 Scala 專案
首先建立一個 Scala 專案。 出現提示時,請輸入專案名稱,例如 my-spark-app。
sbt new scala/scala-seed.g8
步驟 2:更新 Scala 和 JDK 版本
建置 JAR 之前,請確定您用來編譯程式碼的 Java 開發套件 (JDK) 和 Scala 版本支援無伺服器運算。 關於此要求的詳細資訊,請參閱 Set JDK 與 Scala 版本。
如需相容版本,請參閱 版本支援對照表。
下列設定適用於 Scala 2.13 和 JDK 17,與 Databricks Runtime 第 17 版和無伺服器環境第 4 版的專用或標準存取計算相容。
scalaVersion := "2.13.16"
javacOptions ++= Seq("-source", "17", "-target", "17")
scalacOptions ++= Seq("-release", "17")
步驟 3:將 Databricks Connect 新增為相依性
將 Databricks Connect 新增為相依性,以建置 Scala JAR。 如需詳細資訊,請參閱 Spark 相依性。
在 Scala 專案的 build.sbt 建置檔案中,將下列參考新增至 Databricks Connect。
scalaVersion := "2.13.16"
libraryDependencies += "com.databricks" %% "databricks-connect" % "17.0.+"
// To run with new JVM options, a fork is required, otherwise it uses the same options as the sbt process.
fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"
步驟 4:新增其他相依性
Databricks 建議將您的應用程式和所有相依程式庫封裝成單一 JAR 檔案,也稱為 über 或 fat JAR。 或者,您可以將相依程式庫安裝為 運算範圍的程式庫,或在無伺服器環境中安裝。 欲了解更多資訊,請參閱 應用程式相依性。
這很重要
移除對 Spark 的任何相依性。 Spark API 是由 Databricks Connect 所提供。 如需詳細資訊,請參閱 Spark 相依性。
步驟 5:新增 Spark 程式碼
在src/main/scala/example/DatabricksExample.scala建立您的主類別。 關於如何在 Scala 程式碼中使用 Spark 會話的詳細資訊,請參見 Use the Databricks Spark session。
package com.examples
import com.databricks.connect.DatabricksSession
import org.apache.spark.sql.{SparkSession}
object SparkJar {
def main(args: Array[String]): Unit = {
val spark: SparkSession = DatabricksSession.builder()
.validateSession(false)
.addCompiledArtifacts(SparkJar.getClass.getProtectionDomain.getCodeSource.getLocation.toURI)
.getOrCreate()
println(spark.version)
println(spark.range(10).limit(3).collect().mkString(" "))
}
}
步驟 6:執行並建置程式碼
接下來,執行程式碼:
sbt run
現在使用以下行創建一個 project/assembly.sbt 文件,然後構建項目:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1")
sbt assembly
步驟 7:部署 JAR
現在,使用 UI 中的 JAR 工作或使用 Databricks 資產套件組合來部署 JAR 檔案:
備註
您建立的 JAR 也支援標準運算。 不過,對於標準計算,管理者必須將 JAR 程式庫的 Maven 座標和路徑新增至允許清單。 請參閱 使用標準存取模式計算的 Allowlist 連結庫和 init 命令稿(先前稱為共用存取模式)。
Databricks 建議將整個磁碟區,而不是個別 JAR 新增至允許清單。