Вариант использования - найти n максимум строк в данном столбце (это может быть n номеров столбцов), и когда у вас есть n ключей, вы присоединяете его к исходному набору данных, чтобы получить все необходимые вам строки
val df = Seq (("12", "Tom", "Hanks"), ("13", "Meryl", "Streep"), ("12", "Tom", "Hardy"), ("12", "Джон", "Стрип")) .toDF ("возраст", "имя", "фамилия")
Позволяет сказать, что я хочу присоединиться к каждому столбцу индивидуально с набором данных более крупных актерову которого есть все три столбца выше.
val v1 = actors.join(df, Seq("id"), "inner")
val v2 =actors.join(df, Seq("firstname"), "inner")
val v3 =actors.join(df, Seq("lastname"), "inner")
val output = v1.union(v2).union(v3)
Есть ли способ не делать это итеративно? Кроме того, потому что столбцы, которые будут объединены, могут быть динамическими. например, иногда это может быть только идентификатор или только идентификатор и имя.