У меня есть фрейм данных с миллионами строк и тысячами (переменное количество) столбцов. Мне нужно найти максимальное количество строк с 1 в каждом столбце. Пример входной и выходной пары показан ниже:
Input:
scala> val df = Seq(
(1, 1, 1, 0),
(2, 0, 1, 1),
(3, 0, 1, 1),
(4, 1, 1, 1),
(5, 1, 1, 0),
(6, 0, 1, 1),
(7, 0, 0, 1)
).toDF("Sl", "col1", "col2", "col3")
scala> df.show
+---+----+----+----+
| Sl|col1|col2|col3|
+---+----+----+----+
| 1| 1| 1| 0|
| 2| 0| 1| 1|
| 3| 0| 1| 1|
| 4| 1| 1| 1|
| 5| 1| 1| 0|
| 6| 0| 1| 1|
| 7| 0| 0| 1|
+---+----+----+----+
Output:
(2, 6, 3)
Учитывая размер данных, я могу подумать о решении вышеуказанной проблемы (в Scala), используя императивный подход, работая с одним столбцом за раз, но это не очень эффективно. Буду признателен за любую помощь в решении этой проблемы более практичным способом.