伙计,
需要对分组逻辑和处理超过1000万条记录的建议和帮助。处理必须通过对ID进行分组来完成。每个组都必须输入forEach或map中,并且必须在每个组上调用transform方法。一个组可以包含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转换为某些集合,然后传递给我的transform方法。但是后来我将无法应用过滤器,因为它们都是数据框方法。
帮助需要的人。预先感谢。