es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo guardar la suite de pruebas Great_Expectations localmente en Databricks (Edición Comunitaria)

Soy capaz de guardar una suite Great_Expectations en la carpeta tmp de mi edición de Databricks Community de la siguiente manera:

ge_partdf.save_expectation_suite(‘/tmp/myexpectation_suite.json’, discard_failed_expectations=False)

Pero el problema es que, al reiniciar el clúster, el archivo json ya no se encuentra en la carpeta tmp. Supongo que esto se debe a que los archivos que residen en la carpeta tmp son temporales. Sin embargo, si intento guardarlo en una carpeta que sé que existe en Databricks, por ejemplo /FileStore/tables, obtengo el mensaje de error:

FileNotFoundError: [Errno 2] No existe el archivo o el directorio: ‘/FileStore/tables/myexpectation_suite.json’

¿Alguien puede decirme cómo guardarlo localmente en Databricks, por favor?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Apache Spark, Databricks, Great_Expectations y Databricks Community Edition, aquí está mi respuesta a la pregunta anterior.

    Para guardar la suite Great_Expectations localmente en Databricks, puedes utilizar la función dbutils.fs.put(). Esta función es proporcionada por Databricks para cargar un archivo en tu DBFS (sistema de archivos de Databricks).

    Aquí tienes un ejemplo de código para guardar la suite Great_Expectations localmente en Databricks:

    import json
    from great_expectations import DataContext
    
    # crear un DataContext
    context = DataContext()
    
    # obtener el objeto de la suite
    suite = context.get_expectation_suite("mi_suite")
    
    # convertir el objeto de la suite a JSON
    suite_json = suite.to_json_dict()
    
    # definir la ruta del archivo en DBFS
    file_path = "dbfs:/mi_carpeta/mi_suite.json"
    
    # guardar el JSON de la suite en DBFS
    with open("/dbfs" + file_path, "w") as f:
        f.write(json.dumps(suite_json))
    
    # imprimir la ruta del archivo
    print("Suite guardada en", file_path)
    

    Aquí estoy utilizando el método to_json_dict() para convertir el objeto de la suite en un diccionario JSON. Luego, estoy definiendo la ruta del archivo en DBFS utilizando el prefijo dbfs:/. Finalmente, estoy escribiendo el diccionario JSON en el archivo utilizando la declaración with open() y el método json.dumps().

    Ten en cuenta que es posible que necesites crear la carpeta mi_carpeta en DBFS antes de guardar el archivo en ella. Puedes hacer esto utilizando la función dbutils.fs.mkdirs().

    ¡Espero que esto sea útil! Avísame si tienes alguna otra pregunta.

Comments are closed.