Группировка по отдельному идентификатору и обработка каждой группы с помощью карты или foreach Spark Scala - PullRequest
0 голосов
/ 05 июля 2018

Люди,

Требуется предложение и помощь в группировке логики и обработке более 10 миллионов записей. Обработка должна быть сделана путем группировки по идентификатору. Каждая группа должна быть введена в forEach или map, и метод преобразования должен быть вызван для каждой группы. Группа может содержать 10-500 записей |

|      ID2    |        senderID    |        targetID    |  app  |
+-------------+--------------------+--------------------+-------+
|1            |                  FG|                  OM| R-type|
|1            |                  FG|                  OM| R-type|
|1            |         DMA.3.450.5|SILO303.FG.RECV.3...|    FRD|
|2            |                  OM|                  FG| F-Type|
|3            |              EFG-NY|             ETP2EFG|    EFG|
|3            |SILO303.FG.RECV.3...|         DMA.3.450.5|    FRD|
|2            |                  OM|                  FG| F-Type|
|3            |          NEXTGEN_CA|              E-Type|    EFG|
|2            |         DMA.3.450.5|TSX.FG.ROUT.3.500.57|     FG|
+-------------------+--------------------+--------------------+--

Итак, ID2 - это кулон, по которому мне нужно сгруппировать свои записи. Мне нужно сделать группы в соответствии с ID2, как показано ниже, и передать метод преобразования по одному.

finalFeed.rdd.map(Groups => (transform(Groups))).collect.toList

Но я не думаю, что есть способ сделать это. Поскольку передача данных в методы в цикле не выполняется на драйверах.

Какие есть варианты для обхода такой ситуации.

Группы, которые я передаю моему методу transform(Groups), будут далее группироваться в соответствии с senderID, targetID, app, а затем фильтроваться, и все будет происходить, чтобы увидеть, является ли группа действительной или нет.

Должен ли я преобразовать этот DF в некоторую коллекцию, а затем перейти к моему методу преобразования. Но тогда я не смогу применить фильтр и все, поскольку они являются методами данных.

Нужна помощь, ребята. Заранее спасибо.

...