приветствуется.Обычно, задавая вопросы, лучше рассказать немного подробнее о вашей проблеме ... включить сигнатуры типов ... какие поля находятся в ваших данных (я могу сделать вывод, что это разделитель ':', а первое поле - 'user'id ', но лучше, если вы откровенны).
Последняя вещь ... где вы уже искали ... что вы пробовали ... с какими проблемами вы сталкиваетесь?Никто здесь не научит вас зажигать, но многие люди помогут вам преодолеть препятствия.
Я бы сделал это примерно так, если мои предположения верны ... также обратите внимание, яиспользуйте RDD, а не фреймы данных, поэтому, если вам нужен определенный формат, снова ... лучше всего указать в вопросе.
val ids_w_counts: RDD[(String, Int)] = {
feedback
.rdd // convert to RDD
.map(row => (row.split(":").head, 1)) // extract to (user_id, 1)
.reduceByKey(_ + _) // now you have (user_id, total entries)
}
// max number of entries by one user_id
val max_id_cnt: Int = ids_w_cnts.map(_._2).max
// filter all users to just those with max entries
val top_users = ids_w_counts.filter(_._2 == max_id_cnt).collect
// print in shell; again specify format if you need it differently
top_users.foreach(println)