我正在与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
的任何示例。对map
或filter
中使用的丰富函数,我只找到examples,但join
转换的语法不同(括号与括号之间的函数)。
答案 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
}
}