Referencia de Operadores de Función de Tabla

El operador de función de tabla proporciona una lista de funciones de tabla incorporadas que puede utilizar en un flujo de datos para devolver datos en forma de tablas.

Consulte Operador de Función de Tabla.

A continuación, se muestra una lista de las funciones de tabla incorporadas soportadas por el operador de función de tabla.

Caché

Persiste y almacena en caché un juego de datos según el almacenamiento de memoria proporcionado level.

Devuelve un nuevo conjunto de datos en el conjunto de datos distribuido resistente (RDD) almacenado en caché.

Parámetro Descripción
level

Almacenamiento de memoria para utilizar:

MEMORY_ONLY: almacene como objetos Java deserializados en JVM. Si la memoria es insuficiente, algunas particiones RDD no se almacenan en caché, sino que se vuelven a calcular cuando es necesario.

MEMORY_AND_DISK: almacene como objetos Java deserializados en JVM. Si la memoria es insuficiente, algunas particiones RDD se almacenan en el disco y se leen desde el disco cuando es necesario.

MEMORY_ONLY_SER: almacenar como objetos Java deserializados.

MEMORY_AND_DISK_SER: almacenar como objetos Java deserializados. Las particiones que no encajan se almacenan en el disco.

DISK_ONLY: almacena las particiones RDD solo en el disco.

MEMORY_ONLY_2, MEMORY_AND_DISK_2, etc: es similar a otros niveles, pero cada partición se replica en dos nodos de cluster.

Análisis de tabulación cruzada

Calcula una tabla de frecuencia o una tabla de contingencia por pares a partir de valores distintos de las dos columnas proporcionadas.

El número de valores distintos para cada columna debe ser menor que 1e4.

Devuelve un marco de datos que contiene la tabla de contingencia. En la tabla de contingencias:

  • El nombre de la primera columna es col1_col2, donde col1 es la primera columna y col2 es la segunda columna antes de la transformación. La primera columna de cada fila son los valores distintos de col1.
  • Los demás nombres de columna son los valores distintos de col2.
  • Los recuentos se devuelven como tipo long.
  • A los pares sin incidencias se les asigna cero como recuento.
  • El número máximo de pares distintos de cero es 1e6.
  • Los elementos nulos se sustituyen por null.
Parámetro Descripción
col1

Nombre de la primera columna. Consulte la nota que aparece después de esta tabla para ver las limitaciones.

Los elementos distintos de col1 convierten el primer elemento de cada fila en el marco de datos devuelto.

col2

Nombre de la segunda columna. Consulte la nota que aparece después de esta tabla para ver las limitaciones.

Distintos elementos de co2 convierten los nombres de columna en el marco de datos devuelto.

Nota

Solo se permiten los siguientes caracteres en un nombre de columna:

  • letras minúsculas y mayúsculas a-z A-Z
  • Números 0-9
  • guión bajo _

Ejemplo

Supongamos que col1 es age y col2 es salary.

Antes de la transformación:

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

Después de la transformación:

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

Genera un cubo multidimensional de todas las combinaciones posibles mediante la lista de columnas proporcionada y los cálculos en las expresiones de función de agregación proporcionadas.

Las expresiones admiten las siguientes funciones de agregación:

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

Devuelve un marco de datos después de la transformación del cubo.

Parámetro Descripción
cubeColumns

Lista de columnas, separadas por comas, por las que se genera el cubo multidimensional.

aggExpressions

Expresiones de función de agregación que se van a realizar en las columnas.

Por ejemplo: salary -> avg, age -> max

Ejemplo

Antes de la transformación:

+----------+-----+-------+------+---+
|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 es department, region y aggExpressions essalary -> avg, age -> max (cálculo del salario medio y la edad máxima), el cubo de transformación posterior es:

+----------+-------+-----------------+--------+
|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      |
+----------+-------+-----------------+--------+
Generación de Datos

Genera datos sintéticos mediante el contenido y el formato de archivo proporcionados. Los formatos de archivo admitidos son:

  • CSV
  • JSON

Devuelve una entidad de datos. El origen de datos sintético se puede utilizar en pruebas unitarias de pipeline en las que no se utilizan ni se mueven datos reales.

Parámetro Descripción
format

Tipo de archivo. Los valores soportados son:

  • CSV
  • JSON
content

Contenido del archivo para el formato especificado.

Ejemplo

Ejemplo de contenido CSV:

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

Resultado de generación de datos:

+---+---+---+
|co1|co2|co3|
+---+---+---+
|1  |B  |3  |
+---+---+---+
|A  |2  |C  |
+---+---+---+
Desduplicación

Busca duplicados en la lista de columnas o columnas proporcionadas y devuelve un nuevo juego de datos con las filas duplicadas eliminadas.

Parámetro Descripción
columns

Un nombre de columna o una lista separada por comas de nombres de columna.

Ejemplo

Antes de la transformación:

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

Si columns es a, el juego de datos después de la transformación es:

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|2  |4  |
+---+---+
Artículos frecuentes

Busca elementos frecuentes en la columna o la lista de columnas proporcionadas con la frecuencia mínima especificada.

El algoritmo de recuento de elementos frecuentes propuesto por Karl et al. se utiliza para encontrar elementos frecuentes. Los falsos positivos son posibles.

Devuelve un marco de datos con una matriz de elementos frecuentes para cada columna.

Parámetro Descripción
freqItems

Nombre de columna o lista separada por comas de nombres de columna para los que desea buscar elementos frecuentes.

support

Frecuencia mínima para considerar frecuente un ítem.

El valor debe ser mayor que 1e-4 (valor decimal de 0.0001).

Por ejemplo, 0.6 representa el 60 %. Es decir, un elemento que aparece en al menos el 60% de las filas es un elemento frecuente.

Ejemplo

Antes de la transformación:

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

Si freqItems es favorite_fruit y support es 0.6, el marco de datos devuelto después de la transformación es:

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

Elimina las filas que contienen valores nulos o NaN en la lista de columnas o columnas proporcionadas.

Devuelve un marco de datos que excluye las filas.

Parámetro Descripción
how

Cómo determinar si se va a borrar una fila. Los valores soportados son:

  • any: borre la fila que contiene cualquier valor nulo o NaN en el cols especificado.
  • all: borre la fila solo si cada cols especificado es nulo o NaN para esa fila.

El parámetro how se ignora si se especifica el parámetro minNonNulls.

cols

Un nombre de columna o una lista separada por comas de nombres de columna.

minNonNulls

Número mínimo de valores no nulos y no NaN que puede contener una fila.

Borra las filas que contienen menos del mínimo especificado.

El parámetro minNonNulls sustituye el parámetro how.

Ejemplo

Antes de la transformación:

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

Si how es any y cols es name, el marco de datos devuelto después de la transformación es:

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

Al utilizar el parámetro how con el valor all, se borra una fila solo si todos sus valores son nulos. Por ejemplo, antes de la transformación:

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

Después de la transformación:

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

Sustituye los valores nulos y devuelve un marco de datos mediante los valores sustituidos.

Parámetro Descripción
replacement

Asignación de clave-valor que se utilizará para sustituir valores nulos. La clave es un nombre de columna. El valor es un valor de sustitución.

La clave apunta al valor de sustitución. Por ejemplo: name -> Tom significa sustituir valores nulos en la columna name por Tom.

Se convierte un valor de sustitución en el tipo de dato de la columna. Un valor de sustitución debe ser del siguiente tipo:

  • Entero
  • Long
  • Float
  • Doble
  • Cadena
  • Booleano

Ejemplo

Antes de la transformación:

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

Si la asignación de clave-valor es la siguiente:

id -> 3

name -> unknown

age -> 10

Después de la transformación:

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

Sustituye un valor por otro valor en la columna o columnas proporcionadas haciendo coincidir las claves en la clave y la asignación de valores de sustitución proporcionadas.

Devuelve un nuevo marco de datos que contiene la transformación sustituida.

Parámetro Descripción
cols

Nombre de columna o lista separada por comas de nombres de columna sobre los que aplicar valores de sustitución.

Si cols es *, la sustitución se aplica en todas las columnas String, Numeric o Boolean.

replacement

Asignación de clave-valor de sustitución que se va a utilizar. La clave es un valor para sustituir. El valor es el valor de sustitución. El valor de asignación puede tener valores nulos.

La clave apunta al valor de sustitución. Por ejemplo: Alice -> Tom significa sustituir Alice por Tom.

El par de clave y valor de sustitución debe tener el mismo tipo. Solo se admiten los siguientes tipos:

  • Booleano
  • Doble
  • Cadena

Ejemplo

Antes de la transformación:

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

Si cols es name y replacement es Alice -> Tom, el marco de datos después de la transformación es:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Tom    |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+
Volver a Particionar

Divide un juego de datos por las columnas proporcionadas en el número especificado de particiones.

Devuelve un nuevo juego de datos particionado hash. Se devuelve el número exacto de partición especificado.

Parámetro Descripción
partitionColumns

Nombre de columna o lista separada por comas de nombres de columna por los que se particiona el juego de datos.

numberOfPartitions

Número de particiones que se van a crear.

Acumulación

Genera una acumulación multidimensional de posibles combinaciones mediante la lista de columnas proporcionada y los cálculos en las expresiones de función de agregación proporcionadas.

Las expresiones admiten las siguientes funciones de agregación:

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

Devuelve un marco de datos después de la transformación de acumulación.

Parámetro Descripción
rollupColumns

Lista de columnas, separadas por comas, por la que se genera la acumulación multidimensional.

aggExpressions

Expresiones de función de agregación que se van a realizar en las columnas.

Por ejemplo: salary -> avg, age -> max

Ejemplo

Antes de la transformación:

+----------+-----+-------+------+---+
|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 es department, region y aggExpressions es salary -> avg, age -> max (cálculo del salario medio y la edad máxima), la acumulación después de la transformación es:

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

Ejecuta consultas SQL de Spark en datos entrantes, creando primero vistas temporales con los nombres de tabla proporcionados.

Parámetro Descripción
SQL

Sentencia SQL o script que se va a ejecutar.

Ejemplo: select * from table1

tableName

Nombre de tabla o lista separada por comas de nombres de tabla por los que Spark crea tablas temporales.

Ejemplo: table1, table2

Muestreo Estratificado

Genera una muestra estratificada sin sustitución basada en la fracción de muestreo dada para cada estrato.

Devuelve un nuevo marco de datos que representa la muestra estratificada.

Parámetro Descripción
strata_col

Columna que define los estratos.

fractions

Fracción de muestreo para cada estrato, de 0.0 a 1.0.

Por ejemplo, 0.1 devuelve el 10% de las filas y 1.0 devuelve el 100% de las filas.

Si no se especifica una fracción, se asume cero.

sample_size

Si no se especifica fractions, especifique una parte del juego de datos que se va a muestrear, de 0.0 a 1.0.

seed

Utilice cualquier número aleatorio en seed para devolver el mismo ejemplo cada vez, manteniendo el resultado consistente.

Ejemplo

Antes de la transformación:

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

Si strata_col es key y fractions es el siguiente:

1 -> 1.0, 3 -> 0.5

Después de la transformación:

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

Calcula las estadísticas proporcionadas para columnas numéricas y de cadena.

Si no se proporcionan estadísticas, se calculan todas las siguientes opciones:

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • cuartiles aproximados (percentiles al 25 %, 50 % y 75 %)
  • MAX
Parámetro Descripción
statistics

Lista separada por comas de estadísticas.

Los valores soportados son:

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • uno o más percentiles aproximados arbitrarios especificados como porcentaje (por ejemplo, 75%)
  • MAX

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

Ejemplo

Antes de la transformación:

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

Supongamos que statistics es count, mean, stddev, min, 27%, 41%, 95%, max.

Después de la transformación:

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