我要加入一张大桌子和另外3张桌子,

A =通过(f1,f2)右OUTER连接小表,由(f1,f2)合并bulkTable;

B =通过(f3)右外线加入AnotherSmall,通过(f3)加入A;

C =通过(f4)加入AnotherSmall,通过(f4)加入B;

小表可能无法容纳在内存中,但是这迫使十亿个对象读取三次并耗费时间,我想知道是否有任何方法可以避免重读并提高处理效率?

提前致谢。

最佳答案

如果在HBase中将大表设计为具有三个列族,即从f1f2分离f3f4,则应该能够避免不必要的读取。

同样,如果您考虑了这一点,则无需重新阅读,而是阅读记录的不同部分:首先是f1f2,然后是f3,最后是f4

关于hadoop - 如何优化 pig 的大表读取和外部联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12388740/

10-10 15:08