ai_top_drivers Función

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Importante

Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administrar versiones preliminares de Azure Databricks.

ai_top_drivers() es una función con valores de tabla para el análisis de contribuciones. Clasifica los valores dimensionales, o pares de valores, que más contribuyen a un cambio en una métrica entre un grupo de control y un grupo de prueba. Consulta Argumentos para los argumentos disponibles.

Requisitos

Sintaxis

ai_top_drivers(input => input, metric => metric, is_test => is_test
  [, optional_param ] [...])

optional_param:
  { dimensions => dimensions |
    aggregation => aggregation |
    min_support => min_support }

Argumentos

Aproba todos los argumentos por nombre.

  • input es la entrada con valores de tabla a analizar. Proporciona una tabla o subconsulta con la columna de métrica, las columnas de dimensiones y la columna de etiquetas de prueba.
  • metric es nombrar STRING la columna numérica a analizar. La columna debe tener un tipo numérico.
  • is_test es un STRING nombrar una columna booleana que etiqueta cada fila. TRUE marca la división de prueba y FALSE marca la división de control.
  • dimensions (opcional) es un ARRAY<STRING> nombre de columnas para segmentar. Las columnas numéricas de baja cardinalidad se segmentan por valor exacto. Las columnas numéricas de alta cardinalidad se agrupan automáticamente en low, medium, y high rangos. Si omites este argumento, la función selecciona automáticamente las 20 columnas de dimensión correlacionadas superiores de la entrada.
  • aggregation (opcional) es un STRING nombre que indica el agregado a aplicar metric dentro de cada segmento. Los valores admitidos son sum, avg, count, miny max. El valor predeterminado es sum.
  • min_support (opcional) es un DOUBLE entre 0 y 1 que representa la fracción mínima de filas analizables que un segmento debe cubrir para aparecer en los resultados. El valor predeterminado es 0.05.

Returns

La función devuelve una tabla con las siguientes columnas:

  • contributor: Y ARRAY<STRING> eso describe el segmento. Cada elemento utiliza la forma column=value, por ejemplo ["pickup_zip=high (>10044)"] o ["pickup_zip=high (>10044)", "payment_type=CRD"].
  • metric_control: La métrica agregada para el segmento en el grupo de control (is_test = FALSE).
  • metric_test: La métrica agregada para el segmento en el grupo de prueba (is_test = TRUE).
  • change: La diferencia absoluta, metric_testmetric_control.
  • relative_change: El cambio como una fracción de metric_control.
  • support: La fracción total de filas analizables en el segmento.

Los resultados incluyen contribuyentes monodimensionales, pares de valores dimensionales y una ["all"] fila que resume la población completa.

Examples

El siguiente ejemplo compara los ingresos totales por tarifas entre enero y febrero de 2016 y encuentra los rangos de códigos postales para recogida que más contribuyen al cambio:

WITH input AS (
  SELECT
    pickup_zip,
    fare_amount,
    CASE
      WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-01-31' THEN false
      WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-02-01' AND '2016-02-29' THEN true
      ELSE NULL
    END AS is_test
  FROM samples.nyctaxi.trips
  WHERE DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-02-29'
)
SELECT *
FROM ai_top_drivers(
  input => TABLE(input),
  metric => 'fare_amount',
  is_test => 'is_test',
  dimensions => ARRAY('pickup_zip'),
  aggregation => 'sum'
)
ORDER BY ABS(change) DESC

El siguiente ejemplo cuenta los viajes a través de rangos de códigos postales de entrega en los mismos periodos:

WITH input AS (
  SELECT
    dropoff_zip,
    1 AS trip_count,
    CASE
      WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-01-31' THEN false
      WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-02-01' AND '2016-02-29' THEN true
      ELSE NULL
    END AS is_test
  FROM samples.nyctaxi.trips
  WHERE DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-02-29'
)
SELECT *
FROM ai_top_drivers(
  input => TABLE(input),
  metric => 'trip_count',
  is_test => 'is_test',
  dimensions => ARRAY('dropoff_zip'),
  aggregation => 'count'
)
ORDER BY ABS(change) DESC

Note

Para agregación count , proporciona una columna numérica para contar. Una columna constante como 1 AS trip_count es un patrón común.

Limitaciones

Las siguientes limitaciones se aplican durante la Beta:

  • Las filas con un NULL valor en la metric columna o is_test se eliminan antes del análisis.
  • count distinct y median no se soportan agregados.
  • MAP y STRUCT no se soportan columnas de dimensiones. Los identificadores numéricos, como los códigos postales y los IDs, se tratan como cantidades y pueden agruparse en rangos. Caste identificadores numéricos para STRING segmentar por valor exacto.