我在Spark和Scala中有以下DataFrame:
nodeId typeFrom typeTo date
1 A G 2016-10-12T12:10:00.000Z
2 B A 2016-10-12T12:00:00.000Z
3 A B 2016-10-12T12:05:00.000Z
4 D C 2016-10-12T12:30:00.000Z
5 G D 2016-10-12T12:35:00.000Z
我想在nodeId
和typeFrom
值相同的情况下为这些情况制作typeTo
对。
上述示例的预期输出如下:
nodeId_1 nodeId_2 type date
1 2 A 2016-10-12T12:10:00.000Z
3 2 A 2016-10-12T12:05:00.000Z
2 3 B 2016-10-12T12:00:00.000Z
4 5 C 2016-10-12T12:30:00.000Z
5 1 G 2016-10-12T12:35:00.000Z
我不知道如何成对nodeId
:
df.
.filter($"typeFrom" === $"typeTo")
.???
答案 0 :(得分:1)
您可以在B
与nodeFrom
匹配时使用自我加入:
nodeTo