Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Esse artigo aborda o Databricks Connect para Databricks Runtime 13.3 LTS e superior.
Este artigo descreve como executar testes usando pytest com o Databricks Connect para Databricks Runtime 13.3 LTS e versões posteriores. Para instalar o Databricks Connect para Python, consulte Instalar o Databricks Connect para Python.
Para começar com pytest, confira Introdução da pytest documentação.
Importante
O Databricks Connect e o PySpark são mutuamente exclusivos. Para obter mais informações, consulte instalações conflitantes do PySpark.
Observação
Ao executar o Databricks Connect do terminal, pytest só funciona com o perfil de configuração DEFAULT. O perfil deve incluir a computação do Databricks que você deseja usar, um cluster ou uma computação sem servidor. Para obter informações sobre como configurar a computação, consulte a configuração de computação para o Databricks Connect.
Por exemplo, dado o seguinte arquivo nomeado nyctaxi_functions.py contendo uma get_spark função que retorna uma SparkSession instância e uma get_nyctaxi_trips função que retorna um DataFrame representando a tabela trips no esquema samples do catálogo nyctaxi:
nyctaxi_functions.py:
from databricks.connect import DatabricksSession
from pyspark.sql import DataFrame, SparkSession
def get_spark() -> SparkSession:
spark = DatabricksSession.builder.getOrCreate()
return spark
def get_nyctaxi_trips() -> DataFrame:
spark = get_spark()
df = spark.read.table("samples.nyctaxi.trips")
return df
E dado o seguinte arquivo chamado main.py que chama essas funções get_spark e get_nyctaxi_trips:
main.py:
from nyctaxi_functions import *
df = get_nyctaxi_trips()
df.show(5)
O arquivo a seguir, denominado test_nyctaxi_functions.py, testa se a função get_spark retorna uma instância SparkSession e se a função get_nyctaxi_trips retorna um DataFrame que contém pelo menos uma linha de dados:
test_nyctaxi_functions.py:
import pyspark.sql.connect.session
from nyctaxi_functions import *
def test_get_spark():
spark = get_spark()
assert isinstance(spark, pyspark.sql.connect.session.SparkSession)
def test_get_nyctaxi_trips():
df = get_nyctaxi_trips()
assert df.count() > 0
Para executar esses testes, execute o pytest comando da raiz do projeto de código, que deve produzir resultados de teste semelhantes aos seguintes:
$ pytest
=================== test session starts ====================
platform darwin -- Python 3.11.7, pytest-8.1.1, pluggy-1.4.0
rootdir: <project-rootdir>
collected 2 items
test_nyctaxi_functions.py .. [100%]
======================== 2 passed ==========================