Я делал подсчет "игр", используя spark-sql.Первый способ выглядит так:
val gamesByVersion = dataframe.groupBy("game_version", "server").count().withColumnRenamed("count", "patch_games")
val games_count1 = gamesByVersion.where($"game_version" === 1 && $"server" === 1)
Второй выглядит следующим образом:
val gamesDf = dataframe.
groupBy($"hero_id", $"position", $"game_version", $"server").count().
withColumnRenamed("count", "hero_games")
val games_count2 = gamesDf.where($"game_version" === 1 && $"server" === 1).agg(sum("hero_games"))
Для всех намерений и целей dataframe
имеет только столбцы hero_id
, position
, game_version
и server
.
Однако games_count1
заканчивается примерно 10, а games_count2
заканчивается 50. Очевидно, что эти два метода подсчета не эквивалентны или что-то еще происходит, ноЯ пытаюсь понять: в чем причина этих различий?