رأينا في منشورات المدونة السابقة كيف نبدأ بها برمجة الخنازير والكتابة . لقد رأينا خطوات كتابة أ نص خنزير في وضع HDFS و بدون UDF. في الجزء الثالث من هذه السلسلة ، سنراجع خطوات كتابة نص Pig UDF في وضع HDFS .
لقد أوضحنا كيفية تنفيذ Pig UDF من خلال إنشاء وظائف مدمجة لشرح وظيفة وظيفة Pig المدمجة. لتوضيح أفضل ، اتخذنا وظيفتين مضمنتين. لقد فعلنا ذلك بمساعدة نص خنزير.
هنا ، أخذنا مثالًا واحدًا واستخدمنا كلاً من UDF (وظائف محددة بواسطة المستخدم) ، أي إنشاء سلسلة بأحرف كبيرة وأخذ قيمة ورفع قوتها.
كيفية استخدام مكرر في جافا
تم وصف مجموعة البيانات أدناه والتي سنستخدمها في هذا المثال:
هدفنا هو كتابة حرف العمود الأول بأحرف كبيرة ورفع قوة العمود الثاني بقيمة العمود الثالث.
لنبدأ بكتابة كود جافا لكل UDF. كما يتعين علينا تكوين 4 JARs في مشروع java الخاص بنا لتجنب أخطاء الترجمة.
أولاً ، سننشئ برامج جافا ، وكلاهما مذكور أدناه:
Upper.java
import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.data.Tuple import org.apache.pig.impl.util.WrappedIOExceptionSuppressWarnings ('depecation') public class توسع EvalFunc {public يطرح String exec (Tuple input) IOException {if (input == null || input.size () == 0) إرجاع فارغ حاول {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (استثناء هـ) {throw WrappedIOException.wrap ('تم اكتشاف استثناء معالجة صف الإدخال'، e)}}}
Power.java
import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.PigWarning import org.apache.pig.data.Tuple public class Pow extends EvalFunc {public Long exec (Tuple input) يطرح IOException {try { قاعدة int = (عدد صحيح) input.get (0) int exponent = (Integer) input.get (1) long result = 1 / * ربما ليست الطريقة الأكثر فاعلية ... * / لـ (int i = 0 i result) {// فاضنا. أعط تحذيرًا ، لكن لا تطرح استثناءً //. warn ('Overflow!'، PigWarning.TOO_LARGE_FOR_INT) // سيشير إرجاع القيمة الفارغة إلى Pig أننا فشلنا ولكن // نريد مواصلة التنفيذ. return null}} return result} catch (استثناء هـ) {// سيؤدي طرح استثناء إلى فشل المهمة. طرح IOException جديدًا ('حدث شيء سيء!' ، هـ)}}}
لإزالة أخطاء الترجمة ، يتعين علينا تكوين 4 جرار في مشروع جافا الخاص بنا.
انقر فوق الزر تنزيل لتنزيل JARs
[buttonleads form_title = 'Download Code' redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download؟ media_file_id = 76900193 course_id = 166 button_text = 'تنزيل JARs']
الآن ، نقوم بتصدير ملفات JAR لكل من أكواد جافا. يرجى التحقق من الخطوات أدناه لإنشاء JAR.
هنا ، أظهرنا لبرنامج واحد ، المضي قدمًا بنفس الطريقة في البرنامج التالي أيضًا.
بعد إنشاء ملفات JAR والملفات النصية ، قمنا بنقل جميع البيانات إلى مجموعة HDFS ، والتي تصورها الصور التالية:
في مجموعة البيانات الخاصة بنا ، الحقول مفصولة بفواصل (،).
كيفية تثبيت hadoop على لينكس
بعد نقل الملف ، قمنا بإنشاء برنامج نصي بامتداد .pig ووضعنا جميع الأوامر في ملف البرنامج النصي هذا.
الفرق بين تمرير القيمة وتمرير حسب المرجع في جافا
الآن في Terminal ، اكتب PIG متبوعًا باسم ملف البرنامج النصي الذي يظهر في الصورة التالية:
هنا ، هذا هو الإخراج لتشغيل البرنامج النصي الخنزير.
لديك سؤال لنا؟ يرجى ذكرها في قسم التعليقات وسنعاود الاتصال بك.
المنشورات ذات الصلة: