Flink join,Scala API上的丰富功能

时间:2016-04-30 11:59:23

标签: scala apache-flink

我正在与Flink和Scala斗争。

我对DataSet的联接转换非常有效,但我想将其转换为RichFuntion,以便我可以访问广播集:

val newBoard: DataSet[Cell] = board.rightOuterJoin(neighbours)
                             .where("coords").equalTo("cellCoords"){

    (cell, neighbours) => {
            // Do some rich function things, like 
            // override the open method so I can get
            // the broadcasted set
    }

  }

}.withBroadcastSet(board, "aliveCells")

我一直在查看文档,但我找不到在Scala中使用RichJoinFuntion的任何示例。对mapfilter中使用的丰富函数,我只找到examples,但join转换的语法不同(括号与括号之间的函数)。

1 个答案:

答案 0 :(得分:1)

您可以将RichJoinFunction与Scala DataSet API一起使用,如下所示

val newBoard: DataSet[Cell] = board.rightOuterJoin(neighbours)
                             .where("coords").equalTo("cellCoords")
                               .apply(new YourJoinFunction())
                               .withBroadcastSet(board, "aliveCells")

class YourJoinFunction extends RichJoinFunction[IN1, IN2, Cell] {
  override def join(first: IN1, second: IN2): Cell = {
    // Do some rich function things, like 
    // override the open method so I can get
    // the broadcasted set
  }
}