Testes para o Databricks Connect for Scala
Observação
Este artigo abrange Databricks Connect para Databricks Runtime 13.3 LTS e acima.
Este artigo descreve como executar testes usando o ScalaTest para Databricks Connect para Databricks Runtime 13.3 LTS e acima. Para obter mais informações sobre Databricks Connect, consulte Databricks Connect para Scala.
Esta informação pressupõe que o senhor já tenha instalado o Databricks Connect para Scala. Consulte Instalar o Databricks Connect para Scala.
O senhor pode executar o ScalaTest no código local que não precisa de uma conexão com um cluster em um Databricks workspace remoto. Por exemplo, o senhor pode usar o ScalaTest para testar suas funções que aceitam e retornam objetos DataFrame
na memória local. Para começar a usar o ScalaTest e executá-lo localmente, consulte Como começar na documentação do ScalaTest.
Por exemplo, dado o seguinte arquivo src/main/scala/NYCTaxiFunctions.scala
contendo uma função getSpark
que retorna uma instância SparkSession
e uma função getTaxis
que retorna uma DataFrame
representando a tabela trips
no esquema nyctaxi
do catálogo samples
:
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")
}
}
E dado o seguinte arquivo src/main/scala/Main.scala
que chama essas funções getSpark
e 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)
}
}
O arquivo src/test/scala/NYCTaxiFunctionsTest.scala
a seguir testa se a função getSpark
retorna uma instância SparkSession
e se a função getTaxis
retorna um DataFrame
que contém pelo menos uma linha de dados:
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)
}
}
Para executar esses testes, consulte o início rápido do ScalaTest ou a documentação do seu IDE. Por exemplo, para o IntelliJ IDEA, consulte Testar aplicativos Scala na documentação do IntelliJ IDEA.