【发布时间】:2021-11-11 18:22:46
【问题描述】:
假设一个数据框有两列:C1 和 C2
+---+-----+
|C1 | C2 |
+---+-----+
|A | B |
|C | D |
|A | E |
|E | F |
+---+-----+
我的目标是:收集到数组交叉点
+--------------+
| intersections|
+--------------+
|[A, B, E, F] |
|[C, D] |
+--------------+
如果数据帧有大量行(约 10 亿),如何做好
【问题讨论】:
-
这个问题最好使用网络图方法来解决。将数据加载到图中,其中两列的不同值是节点,列之间的对是边。然后首先测试您的图表是否完全连接 - 这意味着每个值都与其他所有值相交,在这种情况下您不必继续。如果图不是全连接的,那么计算集群(社区),每个集群中的节点将代表你的交叉点
-
请查看this question。您可以使用类似的方法
标签: scala apache-spark apache-spark-sql