Spark, rendimiento, shuffle

Es mejor usar repartition() en un Dataframe o partitionBy() en un RDD antes de ejecutar una operacion larga y costosa. operaciones como join(), cogroup(), groupWith(), join(),leftOuterJoin(), rightOuterJoin(), groupByKey(), reduceByKey(), combineByKey(), lookup() pueden ganar mucho si acertamos en el particionamiento. val moviePairs = ratings.as("ratings1") .join(ratings.as("ratings2"), $"ratings1.userId" === $"ratings2.userId" && $"ratings1.movieId" < $"ratings2.movieId") .select($"ratings1.movieId".alias("movie1"), $"ratings2.movieId".alias("movie2"), $"ratings1.rating".alias("rating1"), $"ratings2.rating".alias("rating2")…

Advertisement