我要加入一张大桌子和另外3张桌子,
A =通过(f1,f2)右OUTER连接小表,由(f1,f2)合并bulkTable;
B =通过(f3)右外线加入AnotherSmall,通过(f3)加入A;
C =通过(f4)加入AnotherSmall,通过(f4)加入B;
小表可能无法容纳在内存中,但是这迫使十亿个对象读取三次并耗费时间,我想知道是否有任何方法可以避免重读并提高处理效率?
提前致谢。
最佳答案
如果在HBase中将大表设计为具有三个列族,即从f1
和f2
分离f3
和f4
,则应该能够避免不必要的读取。
同样,如果您考虑了这一点,则无需重新阅读,而是阅读记录的不同部分:首先是f1
和f2
,然后是f3
,最后是f4
。
关于hadoop - 如何优化 pig 的大表读取和外部联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12388740/