J'ai ci-dessous scénario:égalité de deux trames de données
J'ai 2 dataframes contenant seulement 1 colonne permet de dire
DF1=(1,2,3,4,5)
DF2=(3,6,7,8,9,10)
Fondamentalement, ces valeurs sont les clés et je crée un fichier parquet de DF1 si la les clés dans DF1 ne sont pas dans DF2 (dans l'exemple actuel, il devrait retourner false). Ma façon actuelle de parvenir à mon exigence est:
val df1count= DF1.count
val df2count=DF2.count
val diffDF=DF2.except(DF1)
val diffCount=diffDF.count
if(diffCount==(df2count-df1count)) true
else false
Le problème avec cette approche est que je fais appel des éléments d'action 4 fois ce qui est sûr pas la meilleure façon. Quelqu'un peut-il me suggérer le meilleur moyen d'y parvenir?
Pouvez-vous s'il vous plaît laissez-moi savoir comment déclarer le df1 et df2. J'ai déclaré comme ci-dessous sqlContext = SQLContext (sc) df = sqlContext.sql ("select * from table1") df2 = sqlContext.sql ("select * from table2") puis copié le code ci-dessus tel quel. .. obtenir erreur de syntaxe .... Je suis très nouveau à cette étincelle scala code –
Pouvez-vous me corriger ce que je fais mal, Quand j'essaie de courir le code ci-dessous je reçois une erreur: pas trouvé: valeur df1, pas trouvé df2 . .. org.apache.spark.sql import {dataframe, SqlContext} importation org.apache.spark.sql.functions._ val sc: SparkContext val SqlContext = new org.apache.spark.sql.SQLContext (sc) sqlContext = SQLContext (sc) df1 = sqlContext.sql ("select * from table1 ") DF2 = sqlContext.sql (" select * from table2 ") diff (" locataire », DF1, DF2) def diff (key: String, DF1: dataframe, DF2: dataframe): = {dataframe ......} /// diff code amusant tel que fourni –
Bonjour, j'ai ajouté un petit exemple. –