Concatenación de conjuntos de datos de diferentes RDD en Apache spark usando scala


¿Hay una manera de concatenar conjuntos de datos de dos RDD s diferentes en spark?

El requisito es - Creo dos RDDs intermedios usando scala que tiene los mismos nombres de columna, necesito combinar estos resultados de ambos RDDs y almacenar en caché el resultado para acceder a la interfaz de usuario. ¿Cómo combino los conjuntos de datos aquí?

Los RDD son de tipo spark.sql.SchemaRDD

Author: Ram Ghadiyaram, 2014-12-10

2 answers

Creo que estás buscando RDD.union

val rddPart1 = ???
val rddPart2 = ???
val rddAll = rddPart1.union(rddPart2)

Ejemplo (en Spark-shell)

val rdd1 = sc.parallelize(Seq((1, "Aug", 30),(1, "Sep", 31),(2, "Aug", 15),(2, "Sep", 10)))
val rdd2 = sc.parallelize(Seq((1, "Oct", 10),(1, "Nov", 12),(2, "Oct", 5),(2, "Nov", 15)))
rdd1.union(rdd2).collect

res0: Array[(Int, String, Int)] = Array((1,Aug,30), (1,Sep,31), (2,Aug,15), (2,Sep,10), (1,Oct,10), (1,Nov,12), (2,Oct,5), (2,Nov,15))
 44
Author: maasg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-16 01:15:17

Yo tenía el mismo problema. Para combinar por fila en lugar de columna use unionAll:

val rddPart1= ???
val rddPart2= ???
val rddAll = rddPart1.unionAll(rddPart2)

Lo encontré después de leer el resumen del método para data frame. Más información en: https://spark.apache.org/docs/latest/api/java/org/apache/spark/sql/DataFrame.html

 2
Author: Josep Curto Díaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-30 05:58:33