يجب الخريطة () وتقليل () إرجاع مفتاح / قيمة أزواج من نفس النوع؟

StackOverflow https://stackoverflow.com/questions/1859420

  •  13-09-2019
  •  | 
  •  

سؤال

عند كتابة مهمة MAPRREDUCE (على وجه التحديد Hadoop إذا كانت ذات صلة)، يجب على المرء تحديد map() و reduce() وظيفة، كلا العائد تسلسل من أزواج المفتاح / القيمة. أنواع البيانات من المفتاح والقيمة أحرار في تحديدها من قبل التطبيق.

في المثال الكنسي لعداول الكلمات، كل الوظائف تسفر عن أزواج من النوع (string, int) مع كون المفتاح كلمة وقيمة عدد الأحداث. هنا - وكذلك في جميع الأمثلة الأخرى التي رأيتها - تكون أنواع المفاتيح والمفتاح المخرجين بما بين الوظيفتين.

يجب / يجب أن يكون نوع زوج المفتاح / القيمة من قبل map() و reduce() كن متماثل في أي تطبيق من مابيدوس؟ إذا كانت الإجابة بنعم: لماذا؟

هل كانت مفيدة؟

المحلول

.

ومع ذلك، من الممكن تماما أن تكون قد تحظى بتقليل المهمة التي تخرج نوعا مختلفا عن أزواج الخريطة التي جاءت - على سبيل المثال، إذا كانت مهمة الخريطة عدت الكلمات في مستند، ولكن يتم حساب مهمة الحد من تردد Word متوسط. في هذه الحالة، ستكون خريطة الحالة التي تنبعث منها الأعداد الصحيحة ولكن تقلل من أن تنبعث منها أرقام النقطة العائمة.

نصائح أخرى

الخريطة وتقليل المخرجات يمكن أن تكون مختلفة. ولكن عليك أن تخبر التطبيق بأنهم. هنا هو كيف:

تتحكم أساليب SetoutPutkyClass () و SetoutuptValueClass () إلى أنواع الإخراج على الخريطة والوظائف الحد، والتي غالبا ما تكون نفسها.

في حال كانت مختلفة، يمكنك ضبط نوع مفتاح الإخراج الخريطة / نوع القيم بواسطة SetMapoutPutKeyClass () و SetMapoutputValue على التوالي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top