Existe-t-il un moyen de concaténer des ensembles de données de deux RDD
différents dans spark?
La condition est - je crée deux RDD intermédiaires en utilisant scala qui a les mêmes noms de colonnes, j'ai besoin de combiner ces résultats des deux RDD et de mettre en cache le résultat pour accéder à l'interface utilisateur. Comment puis-je combiner les jeux de données ici ?
Les RDD sont de type spark.sql.SchemaRDD
Je pense que vous cherchez RDD.union
val rddPart1 = ???
val rddPart2 = ???
val rddAll = rddPart1.union(rddPart2)
Exemple (sur 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))
J'ai eu le même problème. Pour combiner par ligne au lieu de colonne, utilisez unionAll:
val rddPart1= ???
val rddPart2= ???
val rddAll = rddPart1.unionAll(rddPart2)
Je l'ai trouvé après avoir lu le résumé de la méthode pour la trame de données. Plus d'informations sur: https://spark.Apache.org/docs/latest/api/Java/org/Apache/spark/sql/DataFrame.html