【问题标题】:Can Apache beam support Parallel Sorting?Apache Beam 可以支持并行排序吗?
【发布时间】:2017-11-13 17:41:09
【问题描述】:

能否请您告诉我是否可以使用 Apache Beam 实现并行排序?对于文档,Apache Beam 可以使用单台机器进行排序。有没有办法实现并行排序?

【问题讨论】:

  • 排序的用例是什么?通常我们发现,每次有人尝试使用全局排序来解决问题时,事实证明有更好的方法来解决问题而不使用全局排序:)
  • 这是我们使用的流序列,不确定在什么时候以及如何实现排序。我们有一个 KV 格式的数据结构。我们按 Key 进行分组并产生输出 KV>。我们做一个 groupbykey 因为我们为每个 ID 创建文件。排序要求在 Employee 对象的属性数据中,例如 ID、Age、Designation ......

标签: sorting apache-spark apache-beam


【解决方案1】:

啊,所以您只是在进行按键排序,而不是全局排序。请使用the SortValues transform。每个单独的键都将使用一台机器进行排序,但我认为您拥有每个键的数据量并没有那么大。如果不是这种情况,请告诉我,如果在尝试此转换后您发现它的性能无法接受。

【讨论】:

  • 基于多个字段而非单个 ID 进行排序。 EmployeeID、姓名、年龄、职位等
  • 我是否正确理解您想要对 KV> 中的每个 Iterable 进行排序?
  • 1) 正确。除了按 ID 排序外,还需要对员工对象内的许多其他字段进行排序。例如“select * from employee order by id,age,salary,postion,Address desc”。2) 对于每个员工 ID,我们将创建文件。所以我们正在维护 KV>.
  • 优秀。每个 id max 有多少员工?可以使用标准的 Java Collections.sort() 函数吗?
  • 是的,我们可以使用相同的。在我们处理 GB 文件时,每个 ID 都可以有一百万条记录。
猜你喜欢
  • 2019-09-18
  • 2017-05-14
  • 1970-01-01
  • 2012-07-11
  • 1970-01-01
  • 2019-01-25
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多