Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Cet article présente Databricks Connect pour Databricks Runtime 13.3 LTS et les versions ultérieures.
Cet article décrit comment exécuter des tests en utilisant ScalaTest pour Databricks Connect pour Databricks Runtime 13.3 LTS ou version ultérieure. Pour installer Databricks Connect pour Scala, consultez Installer Databricks Connect pour Scala.
Vous pouvez exécuter ScalaTest sur du code local qui n’a pas besoin d’une connexion à un cluster dans un espace de travail Azure Databricks distant. Par exemple, vous pouvez utiliser ScalaTest pour tester vos fonctions qui acceptent et retournent des objets DataFrame
dans la mémoire locale. Pour bien démarrer avec ScalaTest et l’exécuter localement, consultez la section Bien démarrer dans la documentation ScalaTest.
Par exemple, étant donné le fichier src/main/scala/NYCTaxiFunctions.scala
suivant contenant une getSpark
fonction qui retourne une SparkSession
instance et une getTaxis
fonction qui retourne un DataFrame
représentant la table trips
dans le schéma samples
du catalogue nyctaxi
:
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")
}
}
Et étant donné le fichier src/main/scala/Main.scala
suivant qui appelle ces fonctions getSpark
et getTaxis
:
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)
}
}
Le fichier src/test/scala/NYCTaxiFunctionsTest.scala
suivant teste si la fonction getSpark
retourne une instance SparkSession
et si la fonction getTaxis
retourne un DataFrame
contenant au moins une ligne de données :
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)
}
}
Pour exécuter ces tests, consultez le guide de démarrage rapide ScalaTest ou la documentation de votre IDE. Par exemple, pour IntelliJ IDEA, consultez Applications Test Scala dans la documentation IntelliJ IDEA.