Référence des opérateurs de fonction de table

L'opérateur de fonction de table fournit la 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.

Reportez-vous à Opérateur de fonction de table.

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

Cache

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

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

Paramètre Description
level

Stockage mémoire à utiliser :

MEMORY_ONLY : stocker 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 en fonction des besoins.

MEMORY_AND_DISK : stocker 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 fur et à mesure des besoins.

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

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

DISK_ONLY : stocke les partitions RDD uniquement sur le disque.

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

Analyse de tabulation croisée

Calcule une table de fréquence par paire ou une table de réserve à partir de valeurs distinctes des deux colonnes indiquées.

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

Renvoie une trame de données contenant la table de réserve. Dans la table des réserves pour imprévus :

  • Le nom de la première colonne est col1_col2, où col1 est la première colonne et col2 la deuxième colonne avant la transformation. La première colonne de chaque ligne correspond aux valeurs distinctes de col1.
  • Les autres noms de colonne sont les valeurs distinctes de col2.
  • Les décomptes sont renvoyés en tant que type long.
  • Le nombre de paires sans occurrence est égal à zéro.
  • Le nombre maximal de paires différentes de zéro est 1e6.
  • Les éléments NULL sont remplacés par null.
Paramètre Description
col1

Nom de la première colonne. Reportez-vous à la note après ce tableau pour connaître les limites.

Les éléments distincts de col1 constituent le premier élément de chaque ligne de la trame de données renvoyée.

col2

Nom de la deuxième colonne. Reportez-vous à la note après ce tableau pour connaître les limites.

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

Remarque

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

Renvoie une image de données après la transformation du cube.

Paramètre Description
cubeColumns

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

aggExpressions

Expressions de fonction d'agrégation à exécuter 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 aggExpressions a la valeur salary -> avg, age -> max (calcul du salaire moyen et de 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

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

Paramètre Description
format

Type de fichier. Les valeurs admises sont les suivantes :

  • CSV
  • JSON
content

Contenu du fichier pour le format donné.

Exemple

Exemple de contenu CSV :

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

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

+---+---+---+
|co1|co2|co3|
+---+---+---+
|1  |B  |3  |
+---+---+---+
|A  |2  |C  |
+---+---+---+
Suppression des doublons

Recherche les doublons dans la ou les colonnes indiquées et renvoie un nouvel ensemble de données avec les lignes 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 a la valeur a, l'ensemble 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 ou les colonnes indiquées en utilisant 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 image 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 a la valeur favorite_fruit et que support a la valeur 0.6, la trame de données renvoyée après la transformation est la suivante :

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

Enlève les lignes contenant des valeurs NULL ou NaN dans la ou les listes de colonnes indiquées.

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

Paramètre Description
how

Déterminer si une ligne doit être supprimée. Les valeurs admises sont les suivantes :

  • any : supprime la ligne contenant des valeurs NULL ou NaN dans le fichier cols indiqué.
  • all : supprimez la ligne uniquement si toutes les valeurs cols indiquées sont NULL ou NaN pour cette ligne.

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 minimum de valeurs non NULL et non NaN qu'une ligne peut contenir.

Supprime les lignes contenant moins que le minimum indiqué.

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 a la valeur any et que cols a la valeur name, la trame de données renvoyée après la transformation est la suivante :

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

Lorsque vous utilisez le paramètre how avec la valeur all, une ligne est supprimée uniquement si toutes ses valeurs sont NULL. 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 la transformation :

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

Remplace les valeurs NULL et renvoie une image de données à l'aide des valeurs remplacées.

Paramètre Description
replacement

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

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

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

  • Int
  • Long
  • Float
  • Double
  • Chaîne (String)
  • 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 la transformation :

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

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

Renvoie une nouvelle image 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 lesquels appliquer des valeurs de remplacement.

Si cols a la valeur *, le remplacement est appliqué à toutes les colonnes de type chaîne, numérique ou booléen.

replacement

Correspondance clé-valeur de remplacement à utiliser. La clé est une valeur à remplacer. La valeur est la valeur de remplacement. La valeur de mapping peut avoir des valeurs NULL.

La clé pointe vers 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 (String)

Exemple

Avant la transformation :

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

Si cols est name et que replacement est Alice -> Tom, la trame 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 ensemble de données en fonction des colonnes données en fonction du nombre de partitions spécifié.

Renvoie un nouvel ensemble de données partitionné par hachage. Le nombre exact de partitions indiqué est renvoyé.

Paramètre Description
partitionColumns

Nom de colonne ou liste de noms de colonne séparés par des virgules par lesquels l'ensemble de données est partitionné.

numberOfPartitions

Nombre de partitions à créer.

Cumul

Génère une consolidation multidimensionnelle 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

Renvoie une image de données après la transformation de consolidation.

Paramètre Description
rollupColumns

Liste de colonnes, séparées par des virgules, par lesquelles générer la consolidation multidimensionnelle.

aggExpressions

Expressions de fonction d'agrégation à exécuter 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 (calcul du salaire moyen et de l'âge maximal), la consolidation après transformation est la suivante :

+----------+-------+-----------------+--------+
|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 requêtes 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

Instruction SQL ou script à 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

Prélèvement stratifié

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

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

Paramètre Description
strata_col

Colonne définissant les strates.

fractions

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

Par exemple, 0.1 renvoie 10 % des lignes, et 1.0 renvoie 100 % des lignes.

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

sample_size

Si fractions n'est pas spécifié, indiquez une partie de l'ensemble de données à échantillonner, de 0.0 à 1.0.

seed

Utilisez n'importe quel nombre aléatoire dans seed pour renvoyer le même échantillon à chaque fois, tout en conservant la cohérence du résultat.

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 la transformation :

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  3|    2|
+---+-----+
Récapitulatif

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

Si aucune statistique n'est fournie, tous les éléments suivants sont calculés :

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

Liste de statistiques séparées par des virgules.

Les valeurs admises sont les suivantes :

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • un ou plusieurs centiles approximatifs arbitraires indiqués sous forme de 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 la 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              |
+-------+----------+-----+------+----------------+----------------+