Riferimento per gli operatori di funzione tabella
L'operatore di funzione tabella fornisce un elenco di funzioni tabella incorporate che è possibile utilizzare in un flusso di dati per restituire i dati sotto forma di tabelle.
Vedere Table Function Operator.
Di seguito è riportato un elenco delle funzioni tabella incorporate supportate dall'operatore della funzione tabella.
Rende persistente e memorizza nella cache un set di dati in base alla memoria specificata level
.
Restituisce un nuovo data set nel data set distribuito resiliente memorizzato nella cache (RDD).
Parametro | descrizione; |
---|---|
level |
Memoria da utilizzare:
|
Calcola una tabella delle frequenze in coppia o una tabella delle contingenze in base ai valori distinti delle due colonne specificate.
Il numero di valori distinti per ogni colonna deve essere minore di 1e4.
Restituisce un dataframe che contiene la tabella di contingenza. Nella tabella delle contingenze:
- Il nome della prima colonna è
col1_col2
, dovecol1
è la prima colonna ecol2
è la seconda prima della trasformazione. La prima colonna di ogni riga sono i valori distinti dicol1
. - Gli altri nomi di colonna sono i valori distinti di
col2
. - I conteggi vengono restituiti come tipo
long
. - Alle coppie senza ricorrenze viene assegnato zero come conteggio.
- Il numero massimo di coppie diverse da zero è 1e6.
- Gli elementi nulli vengono sostituiti da
null
.
Parametro | descrizione; |
---|---|
col1 |
Nome della prima colonna. Per informazioni sulle limitazioni, vedere la nota riportata di seguito. Gli elementi distinti di |
col2 |
Nome della seconda colonna. Per informazioni sulle limitazioni, vedere la nota riportata di seguito. Gli elementi distinti di |
Nel nome di una colonna sono consentiti solo i seguenti caratteri:
- lettere minuscole e maiuscole
a-z
A-Z
- numeri
0-9
- carattere di sottolineatura
_
Esempio
Si supponga che col1
sia age
e che col2
sia salary
.
Prima della trasformazione:
+---+------+
|age|salary|
+---+------+
|1 |100 |
|1 |200 |
|2 |100 |
|2 |100 |
|2 |300 |
|3 |200 |
|3 |300 |
+---+------+
Dopo la trasformazione:
+----------+---+---+---+
|age_salary|100|200|300|
+----------+---+---+---+
|2 |2 |0 |1 |
|1 |1 |1 |0 |
|3 |0 |1 |1 |
+----------+---+---+---+
Genera un cubo multidimensionale di tutte le combinazioni possibili utilizzando l'elenco di colonne specificato e i calcoli nelle espressioni di funzione di aggregazione specificate.
Nelle espressioni sono supportate le seguenti funzioni di aggregazione:
AVG
COUNT
MEAN
MAX
MIN
SUM
Restituisce un dataframe dopo la trasformazione del cubo.
Parametro | descrizione; |
---|---|
cubeColumns |
La lista di colonne, separate da virgole, in base alla quale generare il cubo multidimensionale. |
aggExpressions |
Espressioni della funzione di aggregazione da eseguire sulle colonne. Ad esempio: |
Esempio
Prima della trasformazione:
+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng |A |local |1000 |10 |
|Art |B |foreign|2000 |11 |
|Sport |C |local |1500 |13 |
|Eng |A |foreign|800 |19 |
|Art |A |foreign|3000 |30 |
|Eng |E |foreign|1000 |21 |
|Art |D |local |1000 |32 |
|Sport |C |local |1000 |28 |
+----------+-----+-------+------+---+
Se cubeColumns
è department, region
e aggExpressions
è salary -> avg, age -> max
(calcola lo stipendio medio e l'età massima), il cubo di trasformazione successivo sarà:
+----------+-------+-----------------+--------+
|department|region |avg(salary) |max(age)|
+----------+-------+-----------------+--------+
|Eng |foreign|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|null |local |1125.0 |32 |
|Art |foreign|2500.0 |30 |
|null |foreign|1700.0 |30 |
|Eng |local |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |local |1250.0 |28 |
|Art |local |1000.0 |32 |
+----------+-------+-----------------+--------+
Genera dati sintetici utilizzando il formato file e il contenuto specificati. Di seguito sono riportati i formati di file supportati.
- CSV
- JSON
Restituisce un'entità dati. L'origine dati sintetica può essere utilizzata nei test unità pipeline in cui i dati reali non vengono utilizzati o spostati.
Parametro | descrizione; |
---|---|
format |
Il tipo di file. I valori supportati sono:
|
content |
Il contenuto del file per il formato specificato. |
Esempio
Esempio di contenuto CSV:
co1,co2,co3
1,B,3
A,2,C
Risultato generazione dati:
+---+---+---+
|co1|co2|co3|
+---+---+---+
|1 |B |3 |
+---+---+---+
|A |2 |C |
+---+---+---+
Trova i duplicati nell'elenco di colonne o colonne specificato e restituisce un nuovo set di dati con le righe duplicate rimosse.
Parametro | descrizione; |
---|---|
columns |
Nome di colonna o lista separata da virgole di nomi di colonna. |
Esempio
Prima della trasformazione:
+---+---+
|a |b |
+---+---+
|1 |2 |
|3 |4 |
|1 |3 |
|2 |4 |
+---+---+
Se columns
è a
, il data set dopo la trasformazione è:
+---+---+
|a |b |
+---+---+
|1 |2 |
|3 |4 |
|2 |4 |
+---+---+
Trova gli elementi frequenti nell'elenco di colonne o colonne specificato utilizzando la frequenza minima specificata.
L'algoritmo frequente di conteggio degli elementi proposto da Karl et al. viene utilizzato per trovare elementi frequenti. I falsi positivi sono possibili.
Restituisce un dataframe con un array di elementi frequenti per ogni colonna.
Parametro | descrizione; |
---|---|
freqItems |
Nome di colonna o elenco separato da virgole di nomi di colonna per i quali si desidera trovare elementi frequenti. |
support |
Frequenza minima per un articolo da considerare frequente. Il valore deve essere maggiore di 1e-4 (valore decimale di Ad esempio, |
Esempio
Prima della trasformazione:
+-------+--------------+
|user_id|favorite_fruit|
+-------+--------------+
| 1| apple|
| 2| banana|
| 3| apple|
| 4| orange|
| 5| banana|
| 6| banana|
| 7| apple|
+-------+--------------+
Se freqItems
è favorite_fruit
e support
è 0.6
, il dataframe restituito dopo la trasformazione è:
+------------------------+
|favorite_fruit_freqItems|
+------------------------+
| [banana]|
+------------------------+
Rimuove le righe che contengono valori nulli o NaN nella colonna o nella lista di colonne specificata.
Restituisce un dataframe che esclude le righe.
Parametro | descrizione; |
---|---|
how |
Come determinare se una riga deve essere eliminata. I valori supportati sono:
Il parametro |
cols |
Nome di colonna o lista separata da virgole di nomi di colonna. |
minNonNulls |
Il numero minimo di valori non nulli e non NaN che una riga può contenere. Elimina le righe che contengono meno del minimo specificato. Il parametro |
Esempio
Prima della trasformazione:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Se how
è any
e cols
è name
, il dataframe restituito dopo la trasformazione è:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Quando si utilizza il parametro how
con il valore all
, una riga viene eliminata solo se tutti i relativi valori sono nulli. Ad esempio, prima della trasformazione:
+----+--------+----+
| id| name| age|
+----+--------+----+
| 1|John Doe| 30|
| 2| null|null|
| 3|Jane Doe| 25|
| 4|Jake Doe|null|
|null| null|null|
+----+--------+----+
Dopo la trasformazione:
+---+--------+----+
| id| name| age|
+---+--------+----+
| 1|John Doe| 30|
| 2| null|null|
| 3|Jane Doe| 25|
| 4|Jake Doe|null|
+---+--------+----+
Sostituisce i valori nulli e restituisce un dataframe utilizzando i valori sostituiti.
Parametro | descrizione; |
---|---|
replacement |
La mappa chiave-valore da utilizzare per sostituire i valori nulli. La chiave è un nome di colonna. Il valore è un valore di sostituzione. La chiave indica il valore di sostituzione. Ad esempio: Un valore di sostituzione viene convertito nel tipo di dati della colonna. Un valore sostitutivo deve essere del tipo seguente:
|
Esempio
Prima della trasformazione:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Se la mappa chiave-valore è la seguente:
id -> 3
name -> unknown
age -> 10
Dopo la trasformazione:
+---+-------+---+
|id |name |age|
+---+-------+---+
|1 |Alice |25 |
|2 |unknown|28 |
|3 |Bob |10 |
|4 |Charlie|30 |
+---+-------+---+
Sostituisce un valore con un altro valore nella colonna o nelle colonne specificate mediante la corrispondenza delle chiavi nella chiave e nella mappa dei valori di sostituzione specificate.
Restituisce un nuovo dataframe che contiene la trasformazione sostituita.
Parametro | descrizione; |
---|---|
cols |
Nome di colonna o lista separata da virgole di nomi di colonna ai quali applicare valori di sostituzione. Se |
replacement |
La mappa chiave-valore di sostituzione da utilizzare. La chiave è un valore da sostituire. Il valore è il valore di sostituzione. Il valore della mappa può avere valori nulli. La chiave indica il valore di sostituzione. Ad esempio: La coppia chiave-valore di sostituzione deve avere lo stesso tipo. Sono supportati solo i seguenti tipi:
|
Esempio
Prima della trasformazione:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Se cols
è name
e replacement
è Alice -> Tom
, il dataframe dopo la trasformazione è:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Tom |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Divide un set di dati in base alle colonne specificate nel numero specificato di partizioni.
Restituisce un nuovo set di dati con hash partizionato. Viene restituito il numero esatto di partizione specificato.
Parametro | descrizione; |
---|---|
partitionColumns |
Nome di colonna o lista separata da virgole di nomi di colonna in base alla quale il set di dati viene partizionato. |
numberOfPartitions |
Il numero di partizioni da creare. |
Genera un rollup multidimensionale di combinazioni possibili utilizzando l'elenco di colonne specificato e i calcoli nelle espressioni di funzione di aggregazione specificate.
Nelle espressioni sono supportate le seguenti funzioni di aggregazione:
AVG
COUNT
MEAN
MAX
MIN
SUM
Restituisce un dataframe dopo la trasformazione di aggregazione.
Parametro | descrizione; |
---|---|
rollupColumns |
L'elenco di colonne, separate da virgole, in base al quale generare il rollup multidimensionale. |
aggExpressions |
Espressioni della funzione di aggregazione da eseguire sulle colonne. Ad esempio: |
Esempio
Prima della trasformazione:
+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng |A |local |1000 |10 |
|Art |B |foreign|2000 |11 |
|Sport |C |local |1500 |13 |
|Eng |A |foreign|800 |19 |
|Art |A |foreign|3000 |30 |
|Eng |E |foreign|1000 |21 |
|Art |D |local |1000 |32 |
|Sport |C |local |1000 |28 |
+----------+-----+-------+------+---+
Se rollupColumns
è department, region
e aggExpressions
è salary -> avg, age -> max
(calcola lo stipendio medio e l'età massima), l'aggregazione successiva alla trasformazione sarà:
+----------+-------+-----------------+--------+
|department|region |avg(salary) |max(age)|
+----------+-------+-----------------+--------+
|Eng |foreign|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|Art |foreign|2500.0 |30 |
|Eng |local |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |local |1250.0 |28 |
|Art |local |1000.0 |32 |
+----------+-------+-----------------+--------+
Esegue query Spark SQL sui dati in entrata, creando prima viste temporanee utilizzando i nomi di tabella specificati.
Parametro | descrizione; |
---|---|
SQL |
Istruzione o script SQL da eseguire. Esempio: |
tableName |
Nome di tabella o lista separata da virgole di nomi di tabella in base alla quale Spark crea tabelle temporanee. Esempio: |
Genera un campione stratificato senza sostituzione in base alla frazione di campionamento specificata per ogni strato.
Restituisce un nuovo dataframe che rappresenta il campione stratificato.
Parametro | descrizione; |
---|---|
strata_col |
Colonna che definisce gli strati. |
fractions |
La frazione di campionamento per ogni strato, da Ad esempio, Se non viene specificata una frazione, viene assunto zero. |
sample_size |
Se non si specifica |
seed |
Utilizzare qualsiasi numero casuale in |
Esempio
Prima della trasformazione:
+---+-----+
|key|value|
+---+-----+
| 1| 1|
| 1| 2|
| 2| 1|
| 2| 1|
| 2| 3|
| 3| 2|
| 3| 3|
+---+-----+
Se strata_col
è key
e fractions
è il seguente:
1 -> 1.0, 3 -> 0.5
Dopo la trasformazione:
+---+-----+
|key|value|
+---+-----+
| 1| 1|
| 1| 2|
| 3| 2|
+---+-----+
Calcola le statistiche specificate per le colonne numeriche e di stringa.
Se non vengono fornite statistiche, vengono calcolati tutti gli elementi riportati di seguito.
COUNT
MEAN
STDDEV
MIN
- quartili approssimativi (percentili al 25%, 50% e 75%)
MAX
Parametro | descrizione; |
---|---|
statistics |
Elenco di statistiche separato da virgole. I valori supportati sono:
Esempio: |
Esempio
Prima della trasformazione:
+----------+------+-----------------+--------+
|department|gender|avg(salary) |max(age)|
+----------+------+-----------------+--------+
|Eng |female|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|Art |female|2500.0 |30 |
|Eng |male |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |male |1250.0 |28 |
|Art |male |1000.0 |32 |
+----------+------+-----------------+--------+
Si supponga che statistics
sia count, mean, stddev, min, 27%, 41%, 95%, max
.
Dopo la trasformazione:
+-------+----------+-----+------+----------------+----------------+
|summary|department|group|gender|salary |age |
+-------+----------+-----+------+----------------+----------------+
|count |8 |8 |8 |8 |8 |
|mean |null |null |null |1412.5 |20.5 |
|stddev |null |null |null |749.166203188585|8.76682056718072|
|min |Art |A |female|800 |10 |
|27% |null |null |null |1000 |13 |
|41% |null |null |null |1000 |19 |
|95% |null |null |null |3000 |32 |
|max |Sport |E |male |3000 |32 |
+-------+----------+-----+------+----------------+----------------+