Remarque
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 explique comment exécuter des tests à l’aide pytest de Databricks Connect pour Databricks Runtime 13.3 LTS et versions ultérieures. Pour installer Databricks Connect pour Python, consultez Installer Databricks Connect pour Python.
Pour démarrer avec pytest, consultez Démarrage dans la documentation pytest.
Important
Databricks Connect et PySpark s’excluent mutuellement. Pour plus d’informations, consultez Installations PySpark en conflit.
Remarque
Lors de l’exécution de Databricks Connect à partir du terminal, pytest fonctionne uniquement avec le profil de configuration DEFAULT. Le profil doit inclure le calcul Databricks que vous souhaitez utiliser, soit un cluster, soit un calcul serverless. Pour plus d’informations sur la configuration du calcul, consultez Configuration de calcul pour Databricks Connect.
Par exemple, étant donné le fichier suivant nommé nyctaxi_functions.py contenant une get_spark fonction qui retourne une SparkSession instance et une get_nyctaxi_trips fonction qui retourne une DataFrame représentation de la table dans le tripssamples schéma du nyctaxi catalogue :
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
Le fichier main.py suivant appelle ces fonctions get_spark et get_nyctaxi_trips :
main.py :
from nyctaxi_functions import *
df = get_nyctaxi_trips()
df.show(5)
Le fichier test_nyctaxi_functions.py suivant teste si la fonction get_spark retourne une instance de SparkSession, et si la fonction get_nyctaxi_trips retourne un DataFrame contenant au moins une ligne de données :
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
Pour exécuter ces tests, exécutez la pytest commande à partir de la racine du projet de code, qui doit produire des résultats de test similaires à ce qui suit :
$ 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 ==========================