pyspark joindre plusieurs conditions
Je veux vous demander si vous avez la moindre idée sur comment je peux préciser beaucoup de conditions
pyspark lorsque j'utilise .join()
Exemple :
avec la ruche :
query= "select a.NUMCNT,b.NUMCNT as RNUMCNT ,a.POLE,b.POLE as RPOLE,a.ACTIVITE,b.ACTIVITE as RACTIVITE FROM rapexp201412 b \
join rapexp201412 a where (a.NUMCNT=b.NUMCNT and a.ACTIVITE = b.ACTIVITE and a.POLE =b.POLE )\
Mais dans pyspark je ne sais pas comment le faire, car les suivantes:
df_rapexp201412.join(df_aeveh,df_rapexp2014.ACTIVITE==df_rapexp2014.ACTIVITE and df_rapexp2014.POLE==df_aeveh.POLE,'inner')
ne fonctionne pas!!
- pourriez-vous svp coller le message d'erreur pour DataFrame.rejoindre? ou essayez d'utiliser le keyBy/join en RDD, il en charge l'équi-jointure condition très bien.
- Utiliser & entre les deux, et assurez-vous de mettre chaque condition en ()
- Double Possible de Comment rejoindre sur plusieurs colonnes dans Pyspark?
Vous devez vous connecter pour publier un commentaire.
Citant étincelle docs:
(https://spark.apache.org/docs/1.5.2/api/python/pyspark.sql.html?highlight=dataframe%20join#pyspark.sql.DataFrame.join)
Si vous avez besoin d'utiliser la "condition comme une liste" option comme dans le dernier exemple.
Cela ne fonctionne pas avec pyspark 1.3.1. J'ai été faire "AssertionError: joinExprs doit être une Colonne"
Au lieu de cela, j'ai utilisé sql brut pour rejoindre les trames de données comme indiqué ci-dessous