2011-09-24 15 views
7

Theo số Hadoop : The Definitive Guide.Làm cách nào để lấy dữ liệu trong các chức năng Map/Reduce?

API mới hỗ trợ cả kiểu "đẩy" và kiểu kéo "lặp". Trong cả hai API, các cặp bản ghi giá trị khóa được đẩy tới trình ánh xạ, nhưng ngoài ra, API mới cho phép người lập bản đồ lấy các bản ghi từ bên trong phương thức map(). Cũng vậy với bộ giảm tốc. Một ví dụ về cách phong cách "kéo" có thể hữu ích là xử lý các bản ghi theo lô, chứ không phải từng cái một.

Có ai đã lấy dữ liệu trong các chức năng Map/Reduce không? Tôi quan tâm đến API hoặc ví dụ cho tương tự.

Trả lời

5

Tôi đã đăng truy vấn @ [email protected] và nhận câu trả lời.

Cặp giá trị khóa kế tiếp có thể được truy lục từ đối tượng ngữ cảnh được chuyển tới bản đồ, bằng cách gọi nextKeyValue() trên đó. Vì vậy, bạn sẽ có thể lấy dữ liệu tiếp theo từ nó trong API mới.

Hiệu suất của việc kéo tốt hơn đẩy trong trường hợp này? Ngoài ra, các kịch bản trong đó kéo sẽ hữu ích là gì?

+0

Tôi nghĩ kịch bản này sẽ hữu ích khi việc xử lý khóa/giá trị hiện tại của bạn sẽ phụ thuộc vào cặp khóa trị giá tiếp theo. –

+0

Nó có thể đã được thực hiện với API cũ và mới. Tuy nhiên, thách thức là xử lý tình huống khi dữ liệu được lan truyền qua các khối. –

+0

Làm thế nào bạn có thể làm điều đó với api cũ? –

Các vấn đề liên quan