Informations de référence sur les opérateurs de fonction de table

L'opérateur de fonction de table fournit une liste des fonctions de table intégrées que vous pouvez utiliser dans un flux de données pour renvoyer des données sous forme de tables.

Voir Opérateur Fonction de table.

Voici la liste des fonctions de table intégrées prises en charge par l'opérateur de fonction de table.

Mémoire cache

Conserve et met en cache un jeu de données en fonction du stockage de mémoire indiqué level.

Retourne un nouveau jeu de données dans le jeu de données distribué résilient (RDD) mis en cache.

Paramètre Description
level

Mémoire de stockage à utiliser :

MEMORY_ONLY : Stockage en tant qu'objets Java désérialisés dans la JVM. Si la mémoire est insuffisante, certaines partitions RDD ne sont pas mises en cache, mais sont recalculées au besoin.

MEMORY_AND_DISK : Stockage en tant qu'objets Java désérialisés dans la JVM. Si la mémoire est insuffisante, certaines partitions RDD sont stockées sur le disque et lues à partir du disque au besoin.

MEMORY_ONLY_SER : Stockage en tant qu'objets Java désérialisés.

MEMORY_AND_DISK_SER : Stockage en tant qu'objets Java désérialisés. Les partitions qui ne correspondent pas sont stockées sur le disque.

DISK_ONLY : Stocker les partitions RDD uniquement sur disque.

MEMORY_ONLY_2, MEMORY_AND_DISK_2, etc : Similaire aux autres niveaux, mais chaque partition est répliquée sur deux noeuds de grappe.

Analyse de tabulation croisée

Calcule une table de fréquence par paire ou une table d'éventualité à partir de valeurs distinctes des deux colonnes données.

Le nombre de valeurs distinctes pour chaque colonne doit être inférieur à 1e4.

Renvoie une structure de données qui contient la table d'éventualité. Dans le tableau des contingences :

  • Le nom de la première colonne est col1_col2, où col1 est la première colonne et col2 est la deuxième colonne avant la transformation. La première colonne de chaque rangée est les valeurs distinctes de col1.
  • Les autres noms de colonne sont les valeurs distinctes de col2.
  • Les comptages sont retournés en tant que type long.
  • Le nombre de paires sans occurrences est égal à zéro.
  • Le nombre maximal de paires non nulles est 1e6.
  • Les éléments nuls sont remplacés par null.
Paramètre Description
col1

Nom de la première colonne. Reportez-vous à la note qui suit ce tableau pour connaître les limitations.

Les éléments distincts de col1 font le premier élément de chaque rangée dans la structure de données retournée.

col2

Nom de la deuxième colonne. Reportez-vous à la note qui suit ce tableau pour connaître les limitations.

Les éléments distincts de co2 définissent les noms de colonne dans la structure de données retournée.

Note

Seuls les caractères suivants sont autorisés dans un nom de colonne :

  • lettres minuscules et majuscules a-z A-Z
  • chiffres 0-9
  • trait de soulignement _

Exemple

Supposons que col1 soit age et que col2 soit salary.

Avant la transformation :

+---+------+
|age|salary|
+---+------+
|1  |100   |
|1  |200   |
|2  |100   |
|2  |100   |
|2  |300   |
|3  |200   |
|3  |300   |
+---+------+

Après transformation :

+----------+---+---+---+
|age_salary|100|200|300|
+----------+---+---+---+
|2         |2  |0  |1  |
|1         |1  |1  |0  |
|3         |0  |1  |1  |
+----------+---+---+---+
Cube

Génère un cube multidimensionnel de toutes les combinaisons possibles à l'aide de la liste de colonnes donnée et des calculs dans les expressions de fonction d'agrégation données.

Les fonctions d'agrégation suivantes sont prises en charge dans les expressions :

  • AVG
  • COUNT
  • MEAN
  • MAX
  • MIN
  • SUM

Retourne une structure de données après la transformation du cube.

Paramètre Description
cubeColumns

Liste des colonnes, séparées par des virgules, permettant de générer le cube multidimensionnel.

aggExpressions

Expressions de fonction d'agrégation à effectuer sur les colonnes.

Par exemple : salary -> avg, age -> max

Exemple

Avant la transformation :

+----------+-----+-------+------+---+
|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 |
+----------+-----+-------+------+---+

Si cubeColumns a la valeur department, region et que aggExpressions a la valeur salary -> avg, age -> max (calculer le salaire moyen et l'âge maximal), le cube après transformation est :

+----------+-------+-----------------+--------+
|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      |
+----------+-------+-----------------+--------+
Génération de données

Génère des données synthétiques à l'aide du format de fichier et du contenu indiqués. Les formats de fichier pris en charge sont les suivants :

  • CSV
  • JSON

Retourne une entité de données. La source de données synthétique peut être utilisée dans les tests d'unité de pipeline où les données réelles ne sont pas utilisées ou déplacées.

Paramètre Description
format

Type du fichier. Les valeurs prises en charge sont les suivantes :

  • CSV
  • JSON
content

Contenu du fichier pour le format indiqué.

Exemple

Exemple de contenu CSV :

co1,co2,co3
1,B,3
A,2,C

Résultat de la génération des données :

+---+---+---+
|co1|co2|co3|
+---+---+---+
|1  |B  |3  |
+---+---+---+
|A  |2  |C  |
+---+---+---+
Déduplication

Recherche les doubles dans la liste de colonnes indiquée et retourne un nouveau jeu de données avec les rangées en double supprimées.

Paramètre Description
columns

Nom de colonne ou liste de noms de colonne séparés par des virgules.

Exemple

Avant la transformation :

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|1  |3  |
|2  |4  |
+---+---+

Si columns est a, le jeu de données après la transformation est :

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|2  |4  |
+---+---+
Articles fréquents

Recherche les éléments fréquents dans la liste de colonnes ou de colonnes donnée à l'aide de la fréquence minimale indiquée.

L'algorithme de comptage d'éléments fréquents proposé par Karl et al. est utilisé pour trouver des éléments fréquents. Les faux positifs sont possibles.

Renvoie une structure de données avec un tableau d'éléments fréquents pour chaque colonne.

Paramètre Description
freqItems

Nom de colonne ou liste de noms de colonne séparés par des virgules pour lesquels vous voulez rechercher des éléments fréquents.

support

Fréquence minimale pour qu'un élément soit considéré comme fréquent.

La valeur doit être supérieure à 1e-4 (valeur décimale de 0.0001).

Par exemple, 0.6 représente 60 %. Autrement dit, un élément qui apparaît dans au moins 60 % des lignes est un élément fréquent.

Exemple

Avant la transformation :

+-------+--------------+
|user_id|favorite_fruit|
+-------+--------------+
|      1|         apple|
|      2|        banana|
|      3|         apple|
|      4|        orange|
|      5|        banana|
|      6|        banana|
|      7|         apple|
+-------+--------------+

Si freqItems est favorite_fruit et support est 0.6, la structure de données retournée après la transformation est :

+------------------------+
|favorite_fruit_freqItems|
+------------------------+
|                [banana]|
+------------------------+
Na Drop

Supprime les rangées contenant des valeurs nulles ou NaN dans la colonne ou la liste de colonnes indiquée.

Renvoie une structure de données qui exclut les lignes.

Paramètre Description
how

Comment déterminer si une ligne doit être supprimée. Les valeurs prises en charge sont les suivantes :

  • any : Supprimez la rangée qui contient des valeurs nulles ou NaN dans cols spécifié.
  • all : Déposez la rangée uniquement si chaque valeur cols spécifiée est nulle ou NaN pour cette rangée.

Le paramètre how est ignoré si le paramètre minNonNulls est spécifié.

cols

Nom de colonne ou liste de noms de colonne séparés par des virgules.

minNonNulls

Nombre minimal de valeurs non nulles et non NaN qu'une rangée peut contenir.

Supprime les lignes qui contiennent moins que le minimum spécifié.

Le paramètre minNonNulls remplace le paramètre how.

Exemple

Avant la transformation :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si how est any et cols est name, la structure de données retournée après la transformation est :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Lorsque vous utilisez le paramètre how avec la valeur all, une rangée n'est supprimée que si toutes ses valeurs sont nulles. Par exemple, avant la transformation :

+----+--------+----+
|  id|    name| age|
+----+--------+----+
|   1|John Doe|  30|
|   2|    null|null|
|   3|Jane Doe|  25|
|   4|Jake Doe|null|
|null|    null|null|
+----+--------+----+

Après transformation :

+---+--------+----+
| id|    name| age|
+---+--------+----+
|  1|John Doe|  30|
|  2|    null|null|
|  3|Jane Doe|  25|
|  4|Jake Doe|null|
+---+--------+----+
Remplissage Na

Remplace les valeurs nulles et retourne une structure de données à l'aide des valeurs remplacées.

Paramètre Description
replacement

Mappage clé-valeur à utiliser pour remplacer les valeurs nulles. La clé est un nom de colonne. La valeur est une valeur de remplacement.

La clé indique la valeur de remplacement. Par exemple : name -> Tom signifie remplacer les valeurs nulles dans la colonne name par Tom.

Une valeur de remplacement est versée au type de données de la colonne. Une valeur de remplacement doit être du type suivant :

  • Int
  • Long
  • Variable
  • Double
  • Chaîne
  • Boolean

Exemple

Avant la transformation :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si la mappe clé-valeur est la suivante :

id -> 3

name -> unknown

age -> 10

Après transformation :

+---+-------+---+
|id |name   |age|
+---+-------+---+
|1  |Alice  |25 |
|2  |unknown|28 |
|3  |Bob    |10 |
|4  |Charlie|30 |
+---+-------+---+
Na - Remplacer

Remplace une valeur par une autre valeur dans la ou les colonnes indiquées en mettant en correspondance les clés dans le mappage de clé et de valeur de remplacement indiqué.

Retourne une nouvelle structure de données qui contient la transformation remplacée.

Paramètre Description
cols

Nom de colonne ou liste de noms de colonne séparés par des virgules sur laquelle appliquer les valeurs de remplacement.

Si cols est *, le remplacement est appliqué à toutes les colonnes String, Numeric ou Boolean.

replacement

Mappage clé-valeur de remplacement à utiliser. La clé est une valeur à remplacer. La valeur est la valeur de remplacement. La valeur de mappage peut avoir des valeurs nulles.

La clé indique la valeur de remplacement. Par exemple : Alice -> Tom signifie remplacer Alice par Tom.

La paire clé-valeur de remplacement doit avoir le même type. Seuls les types suivants sont pris en charge :

  • Boolean
  • Double
  • Chaîne

Exemple

Avant la transformation :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si cols est name et replacement est Alice -> Tom, la structure de données après la transformation est :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Tom    |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+
Répartition

Divise un jeu de données par les colonnes indiquées en un nombre spécifié de partitions.

Retourne un nouveau jeu de données partitionné par hachage. Le nombre exact de partitions spécifié est retourné.

Paramètre Description
partitionColumns

Nom de colonne ou liste de noms de colonne séparés par des virgules par lesquels le jeu de données est partitionné.

numberOfPartitions

Nombre de partitions à créer.

Regroupement

Génère un regroupement multidimensionnel des combinaisons possibles à l'aide de la liste de colonnes donnée et des calculs dans les expressions de fonction d'agrégation données.

Les fonctions d'agrégation suivantes sont prises en charge dans les expressions :

  • AVG
  • COUNT
  • MEAN
  • MAX
  • MIN
  • SUM

Retourne une structure de données après la transformation de regroupement.

Paramètre Description
rollupColumns

Liste des colonnes, séparées par des virgules, permettant de générer le regroupement multidimensionnel.

aggExpressions

Expressions de fonction d'agrégation à effectuer sur les colonnes.

Par exemple : salary -> avg, age -> max

Exemple

Avant la transformation :

+----------+-----+-------+------+---+
|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 |
+----------+-----+-------+------+---+

Si rollupColumns a la valeur department, region et que aggExpressions a la valeur salary -> avg, age -> max (calculer le salaire moyen et l'âge maximal), le regroupement après transformation est :

+----------+-------+-----------------+--------+
|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      |
+----------+-------+-----------------+--------+
Spark SQL

Exécute des interrogations SQL Spark sur les données entrantes, en créant d'abord des vues temporaires à l'aide des noms de table indiqués.

Paramètre Description
SQL

Énoncé ou script SQL à exécuter.

Exemple : select * from table1

tableName

Nom de table ou liste de noms de table séparés par des virgules par laquelle Spark crée des tables temporaires.

Exemple : table1, table2

Échantillonnage stratifié

Génère un échantillon stratifié sans remplacement en fonction de la fraction d'échantillonnage donnée pour chaque strate.

Renvoie une nouvelle structure de données qui représente l'échantillon stratifié.

Paramètre Description
strata_col

Colonne qui définit les strates.

fractions

Fraction d'échantillonnage pour chaque strate, de 0.0 à 1.0.

Par exemple, 0.1 retourne 10 % des rangées et 1.0 retourne 100 % des rangées.

Si aucune fraction n'est spécifiée, zéro est supposé.

sample_size

Si fractions n'est pas spécifié, spécifiez une partie du jeu de données à échantillonner, de 0.0 à 1.0.

seed

Utilisez un nombre aléatoire dans seed pour retourner le même échantillon à chaque fois, en gardant le résultat cohérent.

Exemple

Avant la transformation :

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  2|    1|
|  2|    1|
|  2|    3|
|  3|    2|
|  3|    3|
+---+-----+

Si strata_col est key et que fractions est le suivant :

1 -> 1.0, 3 -> 0.5

Après transformation :

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  3|    2|
+---+-----+
Sommaire

Calcule les statistiques fournies pour les colonnes numériques et de chaîne.

Si aucune statistique n'est fournie, toutes les données suivantes sont calculées :

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • quartiles approximatifs (percentiles à 25 %, 50 % et 75 %)
  • MAX
Paramètre Description
statistics

Une liste séparée par des virgules de statistiques.

Les valeurs prises en charge sont les suivantes :

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • un ou plusieurs centiles approximatifs arbitraires spécifiés en tant que pourcentage (par exemple, 75%)
  • MAX

Exemple : count, mean, stddev, min, 27%, 41%, 95%, max

Exemple

Avant la transformation :

+----------+------+-----------------+--------+
|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      |
+----------+------+-----------------+--------+

Supposons que statistics soit count, mean, stddev, min, 27%, 41%, 95%, max.

Après transformation :

+-------+----------+-----+------+----------------+----------------+
|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              |
+-------+----------+-----+------+----------------+----------------+