pigpy.

أداة بيثون لإدارة تقارير الخنزير
التحميل الان

pigpy. الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • MIT/X Consortium Lic...
  • السعر:
  • FREE
  • اسم الناشر:
  • Marshall Weir

pigpy. العلامات


pigpy. وصف

أداة لإدارة التقارير الخنزير بيثون pigpy هي مكتبة بيثون لإدارة تقارير الخنزير. تقدم خنزير مجموعة مذهلة من الأدوات لإنشاء عمليات ذات العلاقة المعقدة على رأس Hadoop، ولكن لديها بعض القطع المفقودة: 1) حلقات بنيات لخلق بسهولة تقارير مماثلة متعددة 2) التخزين المؤقت للحسابات وسيطة 3) إدارة البيانات ورمز تنظيف 4) سهلة اختبار لتقرير صحة pypig هو محاولة لملء هذه الثقوب عن طريق توفير وحدة بيثون أن يعرف كيف يتحدث إلى مجموعة Hadoop ويمكن إنشاء وإدارة الهياكل تقرير المعقدة. h1. ابدء H2. التركيب لا يوجد حاليا الحقيقي تثبيت الإجراء. الخروج جذع الحالي ولعب معه من هناك. والشرط الوحيد وأنا على علم هو أن جافا التنفيذي يجب أن يكون على المسار الخاص بك ويجب أن تكون 1.6 أو أحدث. يجب أن يكون الملف grunt.py على مستوى أعلى مثال معقول من أين تبدأ باستخدام هذه الوحدة، بالإضافة إلى هذا البرنامج التعليمي. وقد تم اختبار pigpy على OS X وديبيان لينكس. H2. تقديم التقارير على المستوى الأساسي، pypig هي أداة لتقديم وظائف الخنزير إلى Hadoop والبيانات الشد والجذب على كتلة. نفترض لدينا تقرير خنزير دعا report.pig في الدليل الحالي. من bacon.hadoop استيراد Hadoopclasspaths = local_home = os.path.join (os.path.dirname (__ file__)، "الخارجية" "hadoop-0.18.3") name_node = "ملف: ///" hadoop = hadoop (local_home، name_node، classpaths) hadoop.run_pig_job ( "report.pig") hadoop.copyToLocal ( "/ تقارير / output.csv" "output.csv") يعمل هذا الرمز التقرير على كل ما هو محدد العنقودية name_node، ثم يسحب الإخراج (على افتراض أن مسار الإخراج هو /reports/output.csv) إلى الملفات المحلية. حجة name_node يمكن أن يكون أي HDFS رابط (على سبيل المثال hdfs: // hadoop_cluster_ip: 54310). رمز اختبار يمكن أن تكون مكتوبة بسهولة للإشارة إلى البيانات في الملفات المحلية أو كتلة اختبار للتأكد التحقق من النتائج الصحيحة أسهل. H2. إنشاء التقارير المعقدة ما وراء التقارير مجرد تقديم، يوفر pypig أدوات لإنشاء تقارير معقدة جدا باستخدام بيثون والخنزير اللاتينية بدلا من مجرد خنزير اللاتينية. وهذا يسمح لك باستخدام أعلى مستوى بنيات الثعبان لإنشاء رمز خنزير بدلا من الحفاظ على تقارير كبيرة باليد. فيما يلي مثال لتقرير بسيط جدا توفير إحصاءات عن السيارات حسب اللون. من استيراد bacon.hadoop bacon.reports Hadoopfrom استيراد تقرير، خطة، PlanRunnerhadoop = (hadoop رمز التهيئة) البيانات = تقرير ( "car_color_data"، "LOAD" car_colors.tsv 'AS (الطراز، السعر، اللون)؛ ") color_reports = [] للحصول على السعر في : color_reports.append (تقرير ( " s_cars" السعر، والآباء = { "color_data": بيانات} كود = "" " (هذا) ق = FILTER (color_data) بنسبة السعر < "" "+ شارع (سعر) +" ""؛ (هذا) ق = FOREACH (مجموعة (هذا) بنسبة اللون) {GENERATE group.color، AVG ( ( هذا) s.price)؛} "" ")) خطة خطة = (" / تمة / تقارير "، color_reports) طباعة plan.pigfileplan_runner = PlanRunner (الخطة، hadoop) plan_runner.run_reports () plan_runner.save_reports (" ~ / تقارير ") plan_runner.cleanup () وهذا طباعة pigfile التالية ومن ثم تشغيله وحفظ النتائج إلى الجهاز المحلي: LOAD "car_colors.tsv 'AS (الطراز، السعر، اللون)؛ 5000_cars = FILTER car_color_data حسب السعر <5000؛ 5000_cars = FOREACH (5000_cars GROUP BY اللون) {GENERATE group.color، AVG (5000_cars.price)؛ } مخزن 5000_cars INTO "/tmp/reports/1244375262.84/5000_cars 'استخدام PigStorage ('، ')؛ 10000_cars = FILTER car_color_data حسب السعر <10000. 10000_cars = FOREACH (10000_cars GROUP BY اللون) {GENERATE group.color، AVG (10000_cars.price)؛ } مخزن 10000_cars INTO "/tmp/reports/1244375262.84/10000_cars 'استخدام PigStorage ('، ')؛ 15000_cars = FILTER car_color_data حسب السعر <15000. 15000_cars = FOREACH (15000_cars GROUP BY اللون) {GENERATE group.color، AVG (15000_cars.price)؛ } مخزن 15000_cars INTO "/tmp/reports/1244375262.84/15000_cars 'استخدام PigStorage ('، ')؛ 20000_cars = FILTER car_color_data حسب السعر <20000. 20000_cars = FOREACH (20000_cars GROUP BY اللون) {GENERATE group.color، AVG (20000_cars.price)؛ } مخزن 20000_cars INTO "/tmp/reports/1244375262.84/20000_cars 'استخدام PigStorage ('، ')؛ 150000_cars = FILTER car_color_data حسب السعر <150000. 150000_cars = FOREACH (150000_cars GROUP BY اللون) {GENERATE group.color، AVG (150000_cars.price)؛ } مخزن 150000_cars "/tmp/reports/1244375262.84/150000_cars" في استخدام PigStorage ( '،')؛ في حين أن هذا المثال تافه للقيام به في اللاتينية الخنزير الخام (ويمكن كتابته بشكل أفضل بكثير مع مجموعة ذكية ... من قبل)، حتى هنا أسهل بكثير تغيير النتائج لكل تقرير في غلاف الثعبان من الخنزير الناتج اللاتينية. بالإضافة إلى ذلك، إذا كنت كسول وعدم تسمية كل اسم مستعار، بدلا من ذلك استدعاء كل تقرير Car_Price، فإن الوحدة النمطية ستعيد تسمية كل اسم مستعار Car_Price، car_price_1، car_price_2، إلخ. هنا، لن يحدث أي فرق، حيث نكتب على الفور كل بيانات حقيبة لنظام الملفات وعدم القيام بمزيد من المعالجة. خاصية إعادة تسمية هذه هي السبب في أنني أستخدم (هذا) في قالب التقرير في الحلقة. عند كتابة كائن التقرير إلى ملف الخنزير، يتم ملء الذات والآباء في تركيب سلسلة القاموس. (هذا) S هو مفتاح خاص يستخدم لسحب الاسم الفعلي للتقرير الحالي. لا يوجد أي شرط لاستخدام أي من هذه الوظائف، قد يكون التقرير هو رمز النتيجة فقط وتجنب استخدام الحلقة أو الآباء والأمهات، ولكن هذا يجعل الأمر أكثر صعوبة في تغيير التقارير في المستقبل. إن المسارات الموجودة على نظام ملفات Hadoop فظيعة للغاية للوصول مباشرة، ولهذا السبب يمكن أن يتعامل Planrunner مع حفظه في الدليل المحلي. اسم المجلد هو مجرد الطابع الزمني لمحاولة تجنب وجود خنزير يشكو إذا كان المجلد موجود بالفعل. ستسحب طريقة Save_Reports أشياء إلى دليل محدد للمستخدم من أي مسار فظيع يستخدم في Hadoop، وسيقوم طريقة التنظيف على Planrunner بإزالة جميع آثار مهمة الخنزير من HDFS. H2. التخزين المؤقت النتائج المتوسطة. ينشئ التعليمات البرمجية التالية 3 تقارير لحفظها، كلها بناء على نفس النتائج الأولية. لغرض هذا المثال، افترض أن UDF المخصص يستغرق ساعات لمعالجة الملفات ويأخذ كل تقرير نهائي بضع دقائق. من pigpy.hadoop استيراد hadoopfrom pigpy.reports تقرير الاستيراد، الخطة، Planrunnerhadoop = (رمز تهيئة Hadoop) Slow_Report = تقرير ("الديموغرافي_العملية"، رمز = "" "" (هذا) S = تحميل "US_Census.tsv" باسم (العمر، الأجور، العائلة، الدولة)؛ ( "Ohio"، "Nevada"]: State_Reports.Append (تقرير (الدولة، الآباء والأمهات = {"Demo": slow_report}، code = " (this) s = filter (Demo) s بواسطة State == ' S '؛' الدولة)) خطة = الخطة ("/ TMP / تقارير"، State_Reports) Print Plan.pigfileplan_runner = Planrunner (Plan، Hadoop) Plan_Runner.Runner.Run_Reports () Plan_Runner.Save_Reports ("~ / التقارير") Plan_Runner.Cleanup () سيقوم هذا الرمز بإنشاء وتشغيل تقرير الخنزير التالي: Decographic_aggregate = load 'us_census.tsv' as (العمر، والأجور، العائلة_size، الدولة)؛ الديموغرافي - المجمع = (تصفية مروعة / تجميع UDF مخصص) كما (العمر، والأجور، العائلة_اسيز، الدولة، العد)؛ ميشيغان = تصفية الديموغرافي - "ميشيغان"؛ تخزين ميشيغان في '/tmp/reports/1244588320.16/michigan' باستخدام pigstorage ('،')؛ أوهايو = تصفية الديموغرافي_العملية حسب الحالة == "أوهايو"؛ تخزين أوهايو في "/mp/reports/1244588320.16/ohio" باستخدام Pigstorage (''، ')؛ Nevada = Filter Demographic_aggregate بواسطة State ==' Nevada '؛ تخزين Nevada في "/tmp/reports/1244588320.16/nevada" باستخدام Pigstorage "('، ')؛ مع الإصدار الحالي من الخنزير (0.2.0 في وقت هذا البرنامج التعليمي)، ستعيد مهمة الخنزير هذه إعادة تشغيل الديموغرافي - المعرض لكل من التقارير الفرعية الثلاث. نأمل أن يتم تصحيح هذا في الإفراج عن الخنزير في المستقبل، ولكن حتى ذلك الحين، يمكن أن يجبر بويه مخبأ من هذه النتائج لك. إذا قمت بإعداد معالج تسجيل للحصول على pigpy.reports، فيجب أن ترى التحذير التالي: تحذير: pigpy.reports: تقرير الديموغرافي - يجب التخزين المؤقت مؤقتا، ولكن ليس لديه cache_columns هذا يعني أن pigpy قد وجدت تقريرا يعتقد أنه يجب تخزين مؤقتا، ولكن لا يمكن العثور على تلميحات مناسبة لحفظ وتحميله. إذا قمنا بتعديل الديموغرافي: slow_report = report ("الديموغرافي - المعرض"، رمز = "" "" "" " ( باسم (العمر، والأجور، العائلة، الدولة، العد)؛ "" "" ""، cache_columns = "العمر، والأجور، العائلة، الدولة، العد") سوف يضيف Pigpy هذين السطرين إلى تقرير الخنزير بعد تشغيل Demographic_aggregate حسابه الرهيب: تخزين الديموغرافي_العالمجمع في '/tmp/reports/1244589140.23/Demographic_ageGregate' باستخدام Pigstorage ('،')؛ الديموغرافي - مجانا = تحميل '/tmp/reports/1244589140.23/demographic_aggregate' باستخدام Pigstorage ('،') كما (العمر، والأجور، العائلة، الدولة ، عدد)؛ سيرى الخنزير هذا الرمز وحفظ النتائج لملف الديموغرافي. عندما تستخدم الأسماء المستعارة المستقبلية الديموغرافية - التكلم، فسوف يقومون بعمل نسخة احتياطية من خلال التقرير والعثور على خط التحميل وتحميل النتائج السابقة بدلا من تشغيل العمليات الحسابية مرة أخرى. إذا كنت تستخدم التخزين المؤقت على نطاق واسع، فمن المهم للغاية التأكد من أن طريقة التنظيف التي يتم استدعاؤها، أو سوف تملأ HDFS بسرعة كبيرة. بالإضافة إلى ذلك، ليس ذكيا جدا عن التخزين المؤقت للغاية، لذلك سيجبر التخزين المؤقت في كل مرة تقوم فيها بتزويد Cache_Columns وهناك أكثر من تقرير فرعي واحد. قد يسبب ذلك وظائف خريطة إضافية للتشغيل على الكتلة الخاصة بك. عند الضمشة، تم تحسين القيم المتوسطة التخزين المؤقتة للأداء حتى 10X اعتمادا على عدد التقارير الفرعية. متطلبات: بيثون


pigpy. برامج ذات صلة

Simpleini.

Simpleini هي مكتبة منصة عرضية توفر API بسيطة لقراءة وكتابة ملفات تكوين أسلوب INI. ...

220

تحميل

libqrencode.

libqrencode هي مكتبة ج لترميز البيانات في رمز رمز الاستجابة السريعة. ...

237

تحميل