我正在使用 graphframes
在 pyspark 中进行一些图形类型的分析,想知道从顶点数据框创建边数据框的最佳方法是什么。
例如,下面是我的顶点数据框。我有一个 ID 列表,它们属于不同的组。
+---+-----+
|id |group|
+---+-----+
|a |1 |
|b |2 |
|c |1 |
|d |2 |
|e |3 |
|a |3 |
|f |1 |
+---+-----+
我的目标是创建一个边缘列表数据框,以指示在共同组中出现的id。 请注意,一个id可能出现在多个组中(例如,上面的id a出现在组1和3中)。 下面是我想要得到的边缘列表数据框:
+---+-----+-----+
|src|dst |group|
+---+-----+-----+
|a |c |1 |
|a |f |1 |
|c |f |1 |
|b |d |2 |
|a |e |3 |
+---+-----+-----+
感谢您的提前预约!
(id='f', group=1)
,我们如何知道哪个 id 是src
,哪个是dst
?是否有其他列来为每个组的 id 进行排序? - jxcdf.alias('d1').join(df.alias('d2'), ['group']).filter("d1.id < d2.id").toDF("group", "src", "dst")
- jxcdistinct()
(如果我们有两个实例(1,a),它会给我们重复的行)。 - pegah