Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
Databricks SQL
Databricks Runtime
Importante
Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.
ai_top_drivers() è una funzione a valori di tabella per l'analisi del contributo. Classifica i valori dimensionali, o coppie di valori, che contribuiscono maggiormente a un cambiamento di metrica tra un gruppo di controllo e un gruppo di test. Vedi Argomentazioni per gli argomenti disponibili.
Requisiti
- Databricks Runtime 16.1 o superiore
- Pro o Serverless SQL warehouse con Photon abilitato, oppure un cluster abilitato a Photon su Databricks Runtime
- Iscrivi il tuo spazio di lavoro nell'anteprima delle Funzioni AI Predittive . Vedere Gestire le anteprime di Azure Databricks.
Syntax
ai_top_drivers(input => input, metric => metric, is_test => is_test
[, optional_param ] [...])
optional_param:
{ dimensions => dimensions |
aggregation => aggregation |
min_support => min_support }
Argomenti
Passa tutti gli argomenti per nome.
-
inputè l'input a valori di tabella da analizzare. Fornisci una tabella o sottoquery con la colonna metrica, le colonne dimensionali e la colonna dell'etichetta di test. -
metricè unSTRINGnome della colonna numerica da analizzare. La colonna deve avere un tipo numerico. -
is_testè unSTRINGnome di una colonna booleana che etichetta ogni riga.TRUEsegna la divisione del test eFALSEla divisione dei controlli. -
dimensions(opzionale) è unARRAY<STRING>nome di colonne su cui segmentare. Le colonne numeriche a bassa cardinalità sono segmentate per valore esatto. Le colonne numeriche ad alta cardinalità sono automaticamente raggruppate inlow,medium, ehighintervalli. Se si omette questo argomento, la funzione seleziona automaticamente le prime 20 colonne di dimensione correlate dall'input. -
aggregation(opzionale) è unaSTRINGdenominazione dell'aggregato a cui applicaremetricall'interno di ogni segmento. I valori supportati sonosum,avg,count,minemax. Il valore predefinito èsum. -
min_support(opzionale) è unDOUBLEtra 0 e 1 che rappresenta la frazione minima di righe analizzabili che un segmento deve coprire per apparire nei risultati. Il valore predefinito è0.05.
Returns
La funzione restituisce una tabella con le seguenti colonne:
-
contributor: EARRAY<STRING>che descrive il segmento. Ogni elemento usa la formacolumn=value, ad esempio["pickup_zip=high (>10044)"]o["pickup_zip=high (>10044)", "payment_type=CRD"]. -
metric_control: La metrica aggregata per il segmento nel gruppo di controllo (is_test=FALSE). -
metric_test: La metrica aggregata per il segmento nel gruppo di test (is_test=TRUE). -
change: La differenza assoluta,metric_test−metric_control. -
relative_change: Il cambiamento come frazione dimetric_control. -
support: La frazione del totale delle righe analizzabili nel segmento.
I risultati includono contributori monodimensionali, coppie di valori dimensionali e una ["all"] riga che riassume l'intera popolazione.
Esempi
Il seguente esempio confronta il fatturato totale delle tariffe tra gennaio e febbraio 2016 e trova le fasce di codici postali per il ritiro che contribuiscono maggiormente al cambiamento:
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
Il seguente esempio conta i viaggi tra intervalli di codici postali di consegna negli stessi periodi:
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
Annotazioni
Per l'aggregazione count , fornire una colonna numerica da contare. Una colonna costante come 1 AS trip_count è un modello comune.
Limitations
Durante la Beta si applicano le seguenti limitazioni:
- Le righe con un
NULLvalore nellametriccolonna ois_testvengono eliminate prima dell'analisi. -
count distinctemediangli aggregati non sono supportati. -
MAPeSTRUCTle colonne di dimensione non sono supportate. Gli identificatori numerici, come codici postali e ID, sono trattati come quantità e possono essere raggruppati in intervalli. Converti gli identificatori numerici inSTRINGper segmentare per valore esatto.