我有一个有界的 PCollection,但我只想获取前 X 个输入量并丢弃其余的。有没有办法使用 Dataflow 2.X/ApacheBeam 来做到这一点?
最佳答案
正如 @Andrew 在他的评论中所解释的,也许您可以在 Apache Beam 中使用 Top
转换(对于 Java 或 Python )。具体来说,Top.of()
函数返回一个 PTransform 和一个 PCollection,按比较器变换排序。
Here您可以找到一个简单的使用示例:
PCollection<Student> students = ...;
PCollection<List<Student>> top10Students = students.apply(Top.of(10, new CompareStudentsByAvgGrade()));
和here另一个使用 Apache Beam Python SDK 的示例,它解决了在 PCollection 中返回单个元素的问题。
关于java - 数据流/ApacheBeam 将输入限制为前 X 数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49579110/