如何在Spark中使用过滤制作节点对?

时间:2018-03-12 21:18:57

标签: scala apache-spark spark-dataframe

我在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

我想在nodeIdtypeFrom值相同的情况下为这些情况制作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")
  .???

1 个答案:

答案 0 :(得分:1)

您可以在BnodeFrom匹配时使用自我加入:

nodeTo