gpt4 book ai didi

hadoop - 为什么 DISTINCT 在 Pig 中比 GROUP BY/FOREACH 快

转载 作者:可可西里 更新时间:2023-11-01 15:07:08 30 4
gpt4 key购买 nike

我不知道为什么 DISTINCT 在 Pig 中比 GROUP BY/FOREACH 快,它们在 MapReduce Framework 中应该是相同的,但请引用:

http://pig.apache.org/docs/r0.10.0/perf.html#distinct

Pig wiki 说“要从关系中的列中提取唯一值,您可以使用 DISTINCT 或 GROUP BY/GENERATE。DISTINCT 是首选方法;它更快、更高效。”

为什么?实现方式不同吗?

最佳答案

distinct 的输出是一种关系,它仅包含您对其进行区分的列,因此 Map 作业仅输出指定列的值作为键,并且组合器最大限度地减少 map 溢出输出,从而进一步减少 Reducer 的输入。Group By 的输出是一个“组”键元组和一个 Bag,它包含与原始关系的所有列具有相同组键的所有元组,因此不使用组合器并且 Map 阶段的输出更大并且 reducer 有更多的输入。 Pig 可以做一些优化,但不能保证。

关于hadoop - 为什么 DISTINCT 在 Pig 中比 GROUP BY/FOREACH 快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353816/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com