我一直在尋找使用MapReduce來構建一個並行記錄組合系統。語言並不重要,我可以使用Hadoop之類的預先存在的庫,或者在必要時構建我自己的庫,我並不擔心這一點。並行記錄組合 - 在多個鍵上匹配
然而,我一直在遇到的問題是,我需要在多個條件上匹配記錄。例如:我可能需要匹配基於人名或該人的電話號碼的記錄,但不一定是該人的姓名和電話號碼。
例如,假設每條記錄的下列鍵:
- '約翰·史密斯' 和 '555-555-5555'
- '簡·史密斯' 和 '555-555-5555'
- 「約翰·史密斯」和「555-555-1111」
我希望系統採取一切三個記錄,弄清楚它們匹配的關鍵之一,並結合成一個具有單個結合紀錄這兩個名字('John Smith'和'Jane Smith')也是如此作爲兩個電話號碼('555-555-5555'和'555-555-1111')。
這是我可以使用MapReduce完成的事情嗎?如果是這樣,我將如何去匹配由Map函數生成的鍵,以便所有匹配的記錄都可以傳遞到Reduce函數中。*或者,我可以做的更好嗎?我唯一真正的需求是我需要並行化。
[*]請注意:我假定可以使用Reduce函數,使得每次調用Reduce函數都會生成一個單獨的組合記錄,而不是Reduce函數,從而爲整個作業生成一個單獨的結果。