سؤال

باستخدام مخطط الخرائط فقط (برنامج نصي بلغة Python) وبدون مخفض، كيف يمكنني إخراج ملف منفصل باستخدام المفتاح كاسم ملف، لكل سطر من الإخراج، بدلاً من الحصول على ملفات إخراج طويلة؟

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

المحلول

ويمكنك إما الكتابة إلى ملف نصي على نظام الملفات المحلي باستخدام دالات الملف الثعبان أو إذا كنت ترغب في استخدام HDFS استخدام في التوفير API .

نصائح أخرى

يمكن استبدال فئات تنسيق الإدخال والإخراج باستخدام معلمات سطر الأوامر -inputformat و-outputformat.

يمكن العثور على أحد الأمثلة على كيفية القيام بذلك في مشروع دامبو, ، وهو إطار عمل بايثون لكتابة وظائف البث.يحتوي على ميزة الكتابة إلى ملفات متعددة، ويقوم داخليًا باستبدال تنسيق الإخراج بفئة من مشروعه الشقيق، الريش - fm.last.feathers.output.MultipleTextFiles.

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

أوصي بالبحث في دامبو، فهو يحتوي على العديد من الميزات التي تسهل كتابة برامج Map/Reduce على Hadoop في لغة بايثون.

هل من الممكن أن تحل محل تدفق outputFormatClass، عند استخدام؟ في تطبيق جافا الأصلي هل توسيع الطبقة MultipleTextOutputFormat وتعديل الطريقة التي أسماء ملف الإخراج. ثم تحديد التطبيق الخاص بك كما outputformat جديدة مع طريقة setOutputFormat JobConf ل

ويجب التحقق، إذا كان ذلك ممكنا في يتدفقون أيضا. I donno: - /

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