Databricks Connect for Scala のテスト
この記事では、Databricks Runtime13.3LTLTS以降のDatabricks Connectについて説明します。
この記事では、Databricks Runtime 13.3 LTS 以降で Databricks Connect を使用して ScalaTest を使用してテストを実行する方法について説明します。Databricks Connect for Scala をインストールするには、 「Databricks Connect for Scala のインストール」を参照してください。
ScalaTest の使用を開始し、ローカルで実行するには、ScalaTest ドキュメントの 「Getting started 」を参照してください。
たとえば、次のファイルsrc/main/scala/NYCTaxiFunctions.scala、SparkSession インスタンスを返す getSpark 関数と、samples カタログの nyctaxi スキーマの trips テーブルを表すDataFrameを返す getTaxis 関数が含まれているとします。
NYCTaxiFunctions.scala:
package org.example.application
import com.databricks.connect.DatabricksSession
import org.apache.spark.sql.{DataFrame, SparkSession}
class NYCTaxiFunctions {
def getSpark: SparkSession = {
DatabricksSession.builder().getOrCreate()
}
def getTaxis: DataFrame = {
val spark = getSpark
spark.read.table("samples.nyctaxi.trips")
}
}
また、これらの getSparkTO 関数と getTaxis 関数を呼び出す次のファイル src/main/scala/Main.scalaがあるとします。
Main.scala:
package org.example.application
object Main {
def main(args: Array[String]): Unit = {
val nycTaxiFunctions = new NYCTaxiFunctions()
val df = nycTaxiFunctions.getTaxis
df.show(5)
}
}
次のファイル src/test/scala/NYCTaxiFunctionsTest.scala は、getSpark 関数が SparkSession インスタンスを返すかどうか、getTaxis 関数が少なくとも1行のデータを含む DataFrame を返すかどうかをテストします。
NYCTaxiFunctionsTest.scala:
package org.example.application
import org.apache.spark.sql.SparkSession
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class SparkSessionTypeTest extends AnyFlatSpec with Matchers {
"The session" should "be of type SparkSession" in {
val nycTaxiFunctions = new NYCTaxiFunctions()
val spark = nycTaxiFunctions.getSpark
spark shouldBe a [SparkSession]
}
}
class GetTaxisRowCountTest extends AnyFlatSpec with Matchers {
"The DataFrame" should "have at least one row" in {
val nycTaxiFunctions = new NYCTaxiFunctions()
val df = nycTaxiFunctions.getTaxis
df.count() should be > (0L)
}
}
これらのテストを実行するには、 ScalaTest クイックスタート またはIDEのドキュメントを参照してください。たとえば、IntelliJ IDEA の場合は、IntelliJ IDEA ドキュメントの「 Test Scala applications 」を参照してください。