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.

Obtener la lista de bibliotecas instaladas en todos los clústeres del espacio de trabajo de Databricks.

¿Cómo puedo obtener la lista de todas las bibliotecas instaladas en cada clúster en el espacio de trabajo de Databricks? Tengo un escenario en el que más de 20 clústeres se están ejecutando en un solo espacio de trabajo, por lo tanto, busco una forma de obtener esta información utilizando scripts.

Ya he verificado la opción de la CLI del espacio de trabajo, pero parece que no proporciona la información requerida.

Busco 4 columnas en la salida, es decir, Nombre, Tipo, Estado y Fuente como se muestra a continuación.

Imagen disponible en el siguiente enlace: https://i.stack.imgur.com/acCYY.png

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la lista de todas las bibliotecas instaladas en cada clúster en un espacio de trabajo de Databricks, puede utilizar las API REST de Databricks. Aquí están los pasos para obtener esta información utilizando scripts:

    1. Obtener un token de acceso o generar un token de acceso personal con el alcance ‘workspace’.
    2. Utilizar la API de Listado de Clústeres para obtener una lista de todos los IDs de clústeres en el espacio de trabajo.

    https://<instancia-de-databricks>/api/2.0/clusters/list
    
    1. Para cada ID de clúster, utilizar la API de Bibliotecas con el comando ‘list’ para obtener la lista de todas las bibliotecas instaladas.
    https://<instancia-de-databricks>/api/2.0/libraries/list?cluster_id=<id-del-clúster>
    
    1. Almacenar la salida en un diccionario u objeto JSON para recuperar fácilmente información como el nombre, el tipo, el estado y la fuente.

    Aquí hay un ejemplo de script en Python que utiliza la biblioteca requests para obtener esta información:

    import requests
    import json
    
    # URL de la instancia de Databricks
    databricks_instance = "<instancia-de-databricks>"
    
    # Token de acceso con alcance workspace
    token = "<token-de-acceso>"
    
    # URL de la API de clústeres
    clusters_url = f"https://{databricks_instance}/api/2.0/clusters/list"
    
    # Encabezados con el token de acceso
    headers = {
      "Authorization": f"Bearer {token}",
    }
    
    # Obtener la lista de todos los IDs de clústeres
    response = requests.get(clusters_url, headers=headers)
    clusters = json.loads(response.text)["clusters"]
    cluster_ids = [c["cluster_id"] for c in clusters]
    
    # Obtener las bibliotecas para cada clúster
    libraries = {}
    for cluster_id in cluster_ids:
        libraries_url = f"https://{databricks_instance}/api/2.0/libraries/list?cluster_id={cluster_id}"
        response = requests.get(libraries_url, headers=headers)
        lib_info = json.loads(response.text)
        libraries[cluster_id] = lib_info["library_statuses"]
    
    # Imprimir la información de cada biblioteca
    for cluster_id, libs in libraries.items():
        print(f"ID del clúster: {cluster_id}")
        for lib in libs:
            print(f"Nombre: {lib['library']['name']}")
            print(f"Tipo: {lib['library']['type']}")
            print(f"Estado: {lib['status']}")
            print(f"Fuente: {lib['library']['source']}")
            print()
    

    Este script imprimirá información de cada biblioteca para todos los clústeres en el espacio de trabajo, con las cuatro columnas mencionadas en la pregunta.</id-del-clúster>

Comments are closed.