У меня есть фрейм данных с двумя несколькими столбцами, два из которых являются id и меткой, как показано ниже.
+---+---+---+
| id| label|
+---+---+---+
| 1| "abc"|
| 1| "abc"|
| 1| "def"|
| 2| "def"|
| 2| "def"|
+---+---+---+
Я хочу, чтобы groupBy "id" и агрегировал столбец метки по количеству (игнорировать ноль) метки в структуре данных карты и ожидаемый результат, как показано ниже:
+---+---+--+--+--+--+--+--
| id| label |
+---+-----+----+----+----+
| 1| {"abc":2, "def":1}|
| 2| {"def":2} |
+---+-----+----+----+----+
Возможно ли это сделать без использования пользовательских агрегатных функций? Я видел аналогичный ответ здесь , но он не агрегируется на основе количества каждого элемента.
Я прошу прощения, если этот вопрос глуп, я новичок в Scala и Spark.
Спасибо