Joindre des dataframes Spark sur la clé
J'ai construit deux dataframes. Comment peut-on joindre plusieurs Étincelle dataframes ?
Par Exemple :
PersonDf
ProfileDf
avec une colonne commune comme personId
comme (clé).
Maintenant, comment pouvons-nous avoir un Dataframe combinant PersonDf
et ProfileDf
?
source d'informationauteur Bindumalini KK
Vous devez vous connecter pour publier un commentaire.
Alias Approche à l'aide de la scala :
Vous pouvez utiliser la classe de cas pour préparer l'échantillon de données, ...
ce qui est optionnel pour ex: vous pouvez obtenir
DataFrame
dehiveContext.sql
ainsi..échantillon de la table temporaire de l'approche que je n'aime pas personnellement...
La raison d'utiliser la méthode
registerTempTable( nomtable )
méthode pour un DataFrame, est de sorte qu'en plus d'être en mesure d'utiliser l'Étincelle fournis par les méthodes d'un DataFrame, vous pouvez aussi émettre des requêtes SQL viasqlContext.sql( sqlQuery )
de la méthode, que l'usage que DataFrame comme une table SQL. Le nom de la table paramètre spécifie le nom de la table à utiliser pour que DataFrame dans les requêtes SQL.Si vous voulez en savoir plus sur les jointures pls voir ce joli post : au-delà des traditionnels-rejoignez-with-apache-spark
ASTUCE :
Aussi, chose importante dans les jointures : fonction de radiodiffusion peut vous aider à donner soupçon, se référer à ma réponse
vous pouvez utiliser
ou plus courtes et plus souples (comme vous pouvez facilement spécifier plus de 1 colonnes pour les joindre)
De https://spark.apache.org/docs/1.5.1/api/java/org/apache/spark/sql/DataFrame.htmlutilisez
join
:OU
Mise à jour:
Vous pouvez également enregistrer le
DFs
temp table à l'aide dedf.registerTempTable("tableName")
et vous pouvez écrire des requêtes sql à l'aide desqlContext
.