¿Cuál es la diferencia entre transformaciones y operaciones en RDD?
Descripción general de transformaciones y operaciones
Detalles específicos de las transformaciones
map(func): Devuelve un nuevo conjunto de datos distribuidos formado por la función func Compuesto por cada original elemento transformado
filtro(func): Devuelve un nuevo conjunto de datos que consta de cada elemento original transformado por la función func. Un nuevo conjunto de datos que consta de elementos originales convertidos por la función func y que devuelven verdadero
*flatMap(func): similar al mapa, pero para cada elemento de entrada, se asignará a 0 a múltiples elementos de salida ( por lo tanto, el valor de retorno de la función func es una Seq, no un solo elemento)
flatMap(func): similar al mapa, pero para cada elemento de entrada, 0 se asignará a múltiples elementos de salida (por lo tanto , el valor de retorno de la función func es una Seq, no un solo elemento)
muestra(conReemplazo, frac, semilla):
Basado en las semillas aleatorias dadas. Muestra aleatoriamente una fracción numérica
union(otherDataset): devuelve un nuevo conjunto de datos combinado por el conjunto de datos y los parámetros originales
groupByKey([numTasks]):
Se llama a un conjunto de datos que consta de pares (K, V) para devolver un conjunto de datos de pares (K. Seq[V]). Nota: De forma predeterminada, la agrupación utiliza 8 tareas paralelas. Puede pasar el parámetro opcional numTask para establecer un número diferente de tareas según la cantidad de datos
reduceByKey(func, [numTasks]): en (K). , V ) Llamar a esta función en un conjunto de datos devolverá un conjunto de datos que consta de pares (K, V). Estos conjuntos de datos tienen el mismo valor clave y se agregan utilizando la función de reducción especificada. Similar a groupbykey, la cantidad de tareas se puede configurar mediante el segundo parámetro opcional.
join(otherDataset, [numTasks]):
Llamado a conjuntos de datos de tipo (K, V) y (K, W) para devolver (K, (V, W)) Un conjunto de datos de pares donde se agregan todos los elementos de cada clave
groupWith( otherDataset, [numTasks]): en tipos (K, V) y (K, W) Llamar a esta operación en un conjunto de datos devolverá un conjunto de datos cuyos elementos son (K, Seq[V], Seq[W]) tuplas: producto cartesiano. Sin embargo, cuando se llama a los conjuntos de datos T y U, devuelve un conjunto de datos que consta de pares (T, U) donde todos los elementos interactúan con elementos del producto cartesiano.
flatMap(func):
Similar a map, pero para cada elemento de entrada, asigna múltiples elementos de salida a 0 (por lo que el valor de retorno de la función func es Seq, en lugar de que un solo elemento)
Operaciones específicas
reducir(func): agrega todos los elementos en el conjunto de datos a través de la función func. La función func toma 2 parámetros y devuelve un valor. Esta función debe ser una función asociada para garantizar una ejecución simultánea correcta.
collect(): devuelve todos los elementos del conjunto de datos como una matriz en el controlador. Generalmente se usa después de usar filtros u otras operaciones para devolver un subconjunto de datos lo suficientemente pequeño para ser usado nuevamente. Devolver directamente una recopilación de todo el conjunto RDD puede hacer que el controlador OOM
count(): devuelva una recopilación de los elementos en el conjunto de datos Número
take(n): Devuelve una matriz que consta de los primeros n elementos del conjunto de datos. Tenga en cuenta que esta operación actualmente no se realiza en paralelo en varios nodos, sino en la máquina donde está el controlador, con todos los elementos calculados en una sola máquina (la presión de la memoria en Gateway aumentará, así que úsela con precaución)
first(): devuelve el primer elemento del conjunto de datos (similar a take(1))
saveAsTextFile (ruta): Spark llamará al método toString para cada elemento y lo convertirá en una línea de texto. en el archivo
saveAsSequenceFile(ruta): los elementos del RDD deben estar compuestos por pares clave-valor y todos implementar la interfaz Writable de Hadoop, o convertirse implícitamente a Writable (Spark incluye soporte para Int, Double , String y otros tipos básicos)
foreach(func): Esto generalmente se usa para actualizar variables del acumulador o interactuar con sistemas de almacenamiento externos