1

我目前正在处理 Pig Latin 中的一个大型输入表(10^7 行),其中该表在某些字段上被过滤、处理并将处理后的行返回到原始表中。当已处理的行返回到原始表中时,过滤器所基于的字段会发生更改,以便在后续过滤中忽略已处理的字段。

在 Apache Pig 中,首先根据过滤条件拆分已处理和未处理的表,应用处理并将两个表合并在一起,还是过滤第一个表,将进程应用于过滤后的表并执行左连接,是否更有效?使用主键的原始表?

4

1 回答 1

2

我不能说哪一个实际上会运行得更快,我会简单地运行两个版本并比较执行时间:)

如果您选择第一个解决方案(拆分,然后连接),请确保在连接操作中首先指定两个表中较小的(如果有的话)(可能这将是新添加的数据)。Pig 文档建议这将导致性能改进,因为最后一个表“没有被带入内存,而是通过流式传输”。

于 2012-11-04T18:40:51.453 回答