在 Apache Flink 中,如果我在一个主键上加入两个数据集,我会得到一个元组 2,其中包含每个数据集的相应数据集条目。
问题是,当将map()
方法应用于输出的元组 2 数据集时,它看起来并不好,特别是如果两个数据集的条目都具有大量特征。
在两个输入数据集中使用元组可以得到如下代码:
var in1: DataSet[(Int, Int, Int, Int, Int)] = /* */
var in2: DataSet[(Int, Int, Int, Int)] = /* */
val out = in1.join(in2).where(0, 1, 2).equalTo(0, 1, 2)
.map(join => (join._1._1, join._1._2, join._1._3,
join._1._4, join._1._5, join._2._4))
我不介意使用 POJO 或案例类,但我不知道这会如何使它变得更好。
问题 1:有没有一种很好的方法来扁平化元组 2?例如使用另一个运算符。
问题2:如何处理同一个键上3个数据集的连接?它会使示例源更加混乱。
感谢您的帮助。