תכנות חזיר: סקריפט חזיר אפאצ'י עם UDF במצב HDFS



תכנות חזיר: סקריפט חזיר אפאצ'י עם UDF במצב HDFS. הנה פוסט בבלוג להפעלת סקריפט Apache Pig עם UDF במצב HDFS ...

בפוסטים הקודמים בבלוג ראינו איך להתחיל תכנות חזיר ותסריט . ראינו את השלבים לכתוב א סקריפט חזיר במצב HDFS ו ללא UDF. בחלק השלישי של סדרה זו נסקור את השלבים לכתיבת תסריט חזיר UDF במצב HDFS .

הסברנו כיצד ליישם את חזיר UDF על ידי יצירת פונקציות מובנות כדי להסביר את הפונקציונליות של פונקציה מובנית חזיר. להסבר טוב יותר, לקחנו שתי פונקציות מובנות. עשינו זאת בעזרת תסריט חזיר.





הנה, לקחנו דוגמה אחת והשתמשנו בשני ה- UDF (פונקציות שהוגדרו על ידי המשתמש) כלומר, יצירת מחרוזת באותיות גדולות ולקחת ערך והעלאת כוחו.

מערך הנתונים מתואר שמתחתיו נשתמש בדוגמה זו:



table

מטרתנו היא ליצור אות עמודה 1 באותיות גדולות ולהעלות את הכוח של העמודה השנייה בערך העמודה השלישית.

נתחיל בכתיבת קוד Java עבור כל UDF. כמו כן עלינו להגדיר 4 JAR בפרויקט Java שלנו כדי למנוע שגיאות אוסף.
ראשית, ניצור תוכניות Java, שתיהן מובאות להלן:



Upper.java

ייבא java.io.IOException ייבא org.apache.pig.EvalFunc ייבוא ​​org.apache.pig.data.Tuple ייבוא ​​org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ('הוצאה ') מחלקה ציבורית עליון מרחיב EvalFunc {ציבורי Exec מחרוזת (קלט Tuple) זורק IOException {אם (input == null || input.size () == 0) להחזיר null לנסות {String str = (String) input.get (0) str = str.toUpperCase () return str} לתפוס (חריג e) {לזרוק WrappedIOException.wrap ('נתפס חריג קלט עיבוד שורה', ה)}}}

Power.java

ייבא java.io.IOException ייבא org.apache.pig.EvalFunc ייבוא ​​org.apache.pig.PigWarning ייבוא ​​org.apache.pig.data.Tuple מחלקה ציבורית Pow מאריך EvalFunc {ציבורי ארוך exec (קלט Tuple) זורק IOException {נסה { int בסיס = (Integer) input.get (0) int exponent = (Integer) input.get (1) תוצאה ארוכה = 1 / * כנראה לא השיטה היעילה ביותר ... * / עבור (int i = 0 i תוצאה) {// עלינו על גדותינו. תן אזהרה, אך אל תזרוק // חריג. אזהרה ('הצפה!', PigWarning.TOO_LARGE_FOR_INT) // החזרת null תסמן לחזיר שנכשלנו אבל // אנחנו רוצים להמשיך בביצוע. return null}} return result} catch (Exception e) {// זריקת חריג תגרום למשימה להיכשל. לזרוק IOException חדש ('קרה משהו רע!', ה)}}}

כדי להסיר שגיאות אוסף, עלינו להגדיר את התצורה 4 צנצנות בפרויקט ג'אווה שלנו.


לחץ על כפתור ההורדה כדי להוריד את ה- JAR

[buttonleads form_title = 'קוד הורדה' redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = 'הורדת JARs']

הולך ב- c ++

כעת אנו מייצאים קבצי JAR עבור שני קודי ה- Java. אנא בדוק את השלבים הבאים ליצירת JAR.

הנה, הראינו עבור תוכנית אחת, המשך באותו אופן גם בתוכנית הבאה.

לאחר יצירת קבצי ה- JAR וקבצי הטקסט, העברנו את כל הנתונים לאשכול HDFS, המתואר על ידי התמונות הבאות:

במערך הנתונים שלנו, השדות מופרדים בין פסיקים (,).

מה עושה init בפייתון

לאחר העברת הקובץ, יצרנו סקריפט עם סיומת .pig והכנסנו את כל הפקודות לקובץ script זה.

כעת במסוף, הקלד PIG ואחריו שם קובץ הסקריפט שמוצג בתמונה הבאה:

הנה זו הפלט להפעלת סקריפט החזיר.

יש לך שאלה עבורנו? אנא הזכר אותם בסעיף ההערות ונחזור אליך.

פוסטים קשורים:

צעדים ליצירת UDF ב- Apache Pig

מבוא לכוורת אפאצ'י