我想知道为什么Dataflow不像Apache Spark那样支持'SortByKey'。
我在BigQuery中有一个庞大的表格,我无法对其进行排序,因为“Order By”不具备可扩展性。所以,我正在考虑将BigQuery的输出移动到Dataflow并在那里进行排序。但是,没有SortByKey,似乎我必须编写一个组合器。
任何建议将不胜感激。
答案 0 :(得分:1)
排序(尤其是按键)需要全局串行处理,这不是可伸缩的操作。 Apache Beam / Dataflow不提供此类支持,因为它通常是不必要的。
有各种各样的替代方案通常可以解决更加可扩展的需求。例如,您可以对每个键中的值进行排序,从而允许并行处理每个键。另一个常见用例是全局或按键的TopN。同样,这可以比实际排序更有效地支持。
您能详细说明您需要排序的内容以及原因吗?这样就可以在Beam和Dataflow SDK中识别实现它的选项。