Compartir a través de


API del asesor de Spark

En este artículo se explica cómo obtener consejos en tiempo real para una aplicación spark.

Permissions

El llamador debe tener permiso de "lectura" en el elemento.

Ámbitos delegados necesarios

Item.Read.All o Item.ReadWrite.All o uno de los tres grupos siguientes (según el elemento, que desencadenó la aplicación Spark):

  • Notebook.Read.All o Notebook.ReadWrite.All
  • SparkJobDefinition.Read.All o SparkJobDefinition.ReadWrite.All
  • Permisos de lectura total: Lakehouse.Read.All o permisos de lectura/escritura total: Lakehouse.ReadWrite.All

Identidades admitidas de Microsoft Entra

Esta API admite las identidades de Microsoft enumeradas en esta sección.

identidad Support
Usuario
Entidad de servicio e Identidades administradas

Obtener lista de consejos

Interfaz

Con "attemptId:"

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/notebooks|sparkJobDefinitions|lakehouses/{itemId}/livySessions/{livyId}/applications/{appId}/{attemptId}/advice

Sin identificador de intento.

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/notebooks|sparkJobDefinitions|lakehouses/{itemId}/livySessions/{livyId}/applications/{appId}/advice

Con parámetros opcionales:

Con el attemptId

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/notebooks|sparkJobDefinitions|lakehouses/{itemId}/livySessions/{livyId}/applications/{appId}/{attemptId}/advice?stageId={stageId}&jobId={jobId}&executionId={executionId}&jobGroupId={jobGroupId}&executorId={executorId} 

Sin ID de intento

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/notebooks|sparkJobDefinitions|lakehouses/{itemId}/livySessions/{livyId}/applications/{appId}/advice?stageId={stageId}&jobId={jobId}&executionId={executionId}&jobGroupId={jobGroupId}&executorId={executorId} 

Parámetros de URI

Nombre In Obligatorio Tipo Description
workspaceId camino Cierto cadena UUID El identificador del área de trabajo.
itemId camino Cierto string uuid El identificador de elemento del cuaderno o la definición del trabajo de Spark o Lakehouse.
livyId camino Cierto string uuid Identificador de sesión de Livy.
ID de la aplicación camino Cierto cuerda / cadena El identificador de aplicación de Spark, como application_1111111111111_0001.
attemptId camino Falso int Identificador de intento de esa identificación de aplicación. Si no se especifica, se usa el identificador del último intento.
stageId query Falso long Identificador de fase específico para obtener consejos.
jobId query Falso long Identificador de trabajo específico para obtener consejos.
identificadorDeEjecución query Falso long Identificador de ejecución específico (consulta SQL) para recibir recomendaciones.
jobGroupId query Falso cuerda / cadena Identificador de grupo de trabajos (declaración) específico para recibir asesoramiento.
executorId query Falso cuerda / cadena Identificador de ejecutor específico sobre el cual recibir asesoramiento.

Cuerpo de la solicitud

Ninguno

Respuesta

Nombre Tipo Description
200 Ok Matriz de AdviseDataJson Solicitud completada correctamente.

Examples

Solicitud de ejemplo

GET https://api.fabric.microsoft.com/v1/workspaces/00aa00aa-bb11-cc22-dd33-44ee44ee44ee/notebooks/11bb11bb-cc22-dd33-ee44-55ff55ff55ff/livySessions/0a0a0a0a-1111-bbbb-2222-3c3c3c3c3c3c/applications/application_11111111111110001/1/advice  

Respuesta de ejemplo

Código de estado: 200

[
  { 
    "id": 0, 
    "name": "May return inconsistent results when using 'randomSplit'", 
    "description": "Inconsistent or inaccurate results may be returned when working with the results of the 'randomSplit' method. Use Apache Spark (RDD) caching before using the 'randomSplit' method.", 
    "helplink": "", 
    "source": "user", 
    "level": "info", 
    "stageId": -1, 
    "jobId": -1, 
    "executionId": -1, 
    "jobGroupId": "6", 
    "executorId": "" 
  } 
] 

Obtener consejos por filtro

Interfaz

Con attemptId

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/notebooks|sparkJobDefinitions|lakehouses/{itemId}/livySessions/{livyId}/applications/{appId}/{attemptId}/advice/{filter}/{byId} 

Sin "attemptId"

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/notebooks|sparkJobDefinitions|lakehouses/{itemId}/livySessions/{livyId}/applications/{appId}/advice/{filter}/{byId} 

Parámetros de URI

Nombre In Obligatorio Tipo Description
workspaceId camino Cierto cadena UUID El identificador del área de trabajo.
itemId camino Cierto string uuid El identificador del elemento del cuaderno, la definición del trabajo de Spark o Lakehouse.
livyId camino Cierto string uuid Identificador de sesión de Livy.
ID de la aplicación camino Cierto cuerda / cadena El identificador de aplicación de Spark, como application_1111111111111_0001.
attemptId camino Falso int ID de intento de ese ID de aplicación. Si no se especifica, se usa el identificador del último intento.
filtro camino Cierto cuerda / cadena El nombre del filtro podría ser cualquiera de los siguientes:
- etapas
-Trabajos
- ejecuciones (es decir, consulta SQL)
- jobGroups (es decir, declaración)
-Ejecutores
byId camino Cierto long o cadena Identificador específico para filtrar
- largo si sigue el filtro de "fases", "tareas" o "ejecuciones".
: cadena si sigue el filtro de "jobGroups" o "executors".

Cuerpo de la solicitud

Ninguno

Respuesta

Nombre Tipo Description
200 Ok Matriz de AdviseDataJson Solicitud completada correctamente.

Examples

Solicitud de ejemplo

GET https://api.fabric.microsoft.com/v1/workspaces/00aa00aa-bb11-cc22-dd33-44ee44ee44ee/notebooks/11bb11bb-cc22-dd33-ee44-55ff55ff55ff/livySessions/0a0a0a0a-1111-bbbb-2222-3c3c3c3c3c3c/applications/application_11111111111110001/1/advice/jobGroups/6

Código de estado: 200

[
  {
    "id": 0,
    "name": "May return inconsistent results when using 'randomSplit'",
    "description": "Inconsistent or inaccurate results may be returned when working with the results of the 'randomSplit' method. Use Apache Spark (RDD) caching before using the 'randomSplit' method.",
    "helplink": "",
    "source": "user",
    "level": "info",
    "stageId": -1,
    "jobId": -1,
    "executionId": -1,
    "jobGroupId": "6",
    "executorId": ""
  }
] 

Definiciones

AdviseDataJson

Objeto

Nombre Tipo Description
id long Identificador del consejo.
nombre cuerda / cadena Nombre del consejo.
descripción cuerda / cadena Descripción del consejo.
helplink cuerda / cadena La página web o la documentación para utilizar como referencia o para obtener más ayuda.
detail objeto Más detalles en formato de texto enriquecido. Consulte JsonAdviseDetail.
source cuerda / cadena Podría ser "Sistema", "Usuario" o "Dependencia".
nivel cuerda / cadena Podría ser "información", "advertir" o "error".
stageId long El identificador de la fase, sobre la cual se proporciona el consejo. Ignore stageId si su valor es -1.
jobId long El identificador de trabajo sobre el cual se proporciona el consejo. Ignore jobId si su valor es -1.
executionId long Identificador de ejecución (consulta SQL) sobre el cual se proporciona el consejo. Ignore executionId si su valor es -1.
jobGroupId cuerda / cadena Identificador del grupo de trabajos (declaración) sobre el cual se proporciona el consejo.
executorId cuerda / cadena Identificador del ejecutor, en el que se proporciona el consejo.

JsonAdviseDetail

Objeto

Nombre Tipo Description
datos objeto Podría ser: TaskError, DataSkew o TimeSkew.

TaskError

Objeto

Nombre Tipo Description
nombre cuerda / cadena Nombre del error o excepción.
tsg cuerda / cadena La guía de solución de problemas que se debe seguir.
TiposDeTareas cuerda / cadena Los tipos de tareas de Spark, podrían ser "ResultTask", "ShuffleMapTask"...
helplink cuerda / cadena La página web o la documentación para referencia o asistencia adicional.
executorIds cuerda / cadena Identificadores del ejecutor.
stageIds cuerda / cadena Identificadores de fase.
count int Recuento de tareas.

DataSkew

Objeto

Nombre Tipo Description
nombre cuerda / cadena Nombre de la fase.
stageId cuerda / cadena Id. de etapa.
porcentajeDeTareasSesgado cuerda / cadena Porcentaje de tareas sesgadas.
maxDataRead cuerda / cadena Lectura máxima de datos, en MiB.
meanDataRead cuerda / cadena Datos medio leídos, en MiB.
taskDataReadSkewness double La asimetría en la lectura de datos de las tareas dentro de la etapa, medida por el "Segundo coeficiente de asimetría de Pearson".

TimeSkew

Objeto

Nombre Tipo Description
nombre cuerda / cadena Nombre de la fase.
stageId cuerda / cadena ID de fase.
PorcentajeDeTareaSesgada cuerda / cadena Porcentaje de tareas sesgadas.
duraciónMáximaDeTarea cuerda / cadena Duración máxima, en segundos.
meanTaskDuration cuerda / cadena Duración media, en segundos.
asimetríaDuraciónTarea double La asimetría de duración de las tareas dentro de la fase, medida por "El segundo coeficiente de asimetría de Pearson".