בדף הזה מוסבר איך להמיר שדות למספרים עשרוניים ולבצע בהם טרנספורמציות כשמכינים נתונים בסביבת העבודה של Wrangler ב-Cloud Data Fusion Studio.
קריאת נתונים עשרוניים
- עוברים לסביבת העבודה של Wrangler ב-Cloud Data Fusion.
פותחים אובייקט, כמו טבלה, ממסד נתונים או מקובץ Cloud Storage.
- בחיבור למסד נתונים או ל-BigQuery, אם בטבלה יש עמודה עם נתונים עשרוניים, הכלי Wrangler ממיר אותה לסוג
BigDecimal. כשיוצרים את צינור הנתונים מ-Wrangler, העמודה מומרת לסוג הנתוניםdecimal. אם מערך הנתונים מכיל נתונים לא עשרוניים שרוצים להמיר לעשרוניים, משתמשים בהנחיה
set-column:set-column : DECIMAL_COLUMN exp:{new("java.math.BigDecimal", INPUT_COLUMN)}מחליפים את מה שכתוב בשדות הבאים:
DECIMAL_COLUMN: העמודה העשרונית שרוצים להמיר. אחרי שההוראה מופעלת, סוג הנתונים של העמודה משתנה ל-BigDecimal, והסכימה כוללת גם את סוג הנתונים המתאים.
INPUT_COLUMN: העמודה שממירה, שיכולה להיות אחת מהסוגים הבאים:STRING,INTEGER,LONG,FLOATאוDOUBLE.
אם מערך הנתונים כולל ערכים עם סקאלות שונות, כמו 1.05, 2.698, 5.8745512, צריך להגדיר את הסקאלה באמצעות פקודת Wrangler ולערוך את הסכימה בצינור כדי להגדיר את הסקאלה לעמודה העשרונית.
כדי להגדיר את קנה המידה ב-Wrangler, משתמשים בהנחיה דומה להנחיה הבאה:
set-column : OUTPUT_COLUMN exp:{new("java.math.BigDecimal", DECIMAL_COLUMN).setScale()}בדוגמה הבאה, עמודה בשם
costמומרת ממחרוזת למספר עשרוני, קנה מידה של 9 מוגדר והתוצאות מוצגות בעמודה חדשה בשםoutput-column:set-column : output-column exp:{new("java.math.BigDecimal", "cost").setScale(9)}
- בחיבור למסד נתונים או ל-BigQuery, אם בטבלה יש עמודה עם נתונים עשרוניים, הכלי Wrangler ממיר אותה לסוג
טרנספורמציה של נתונים עשרוניים
עמודות עשרוניות ב-Wrangler משתמשות במחלקה Java BigDecimal.
אחרי שהעמודות מומרות לסוג הנתונים BigDecimal, משנים את העמודות באמצעות שיטות מ-Class BigDecimal.
| שינוי | הוראה |
|---|---|
| חישוב הערך המוחלט | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.abs() |
| קבלת הדיוק של ערך עשרוני | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.precision() |
| קבלת קנה המידה של ערך עשרוני | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.scale() |
| קבלת הערך הלא מותאם של ערך עשרוני | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.unscaledValue() |
| חיבור של שתי עמודות עם מספרים עשרוניים | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.add(DECIMAL_COLUMN_2) |
| חיסור מספר עשרוני ממספר עשרוני אחר | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.subtract(DECIMAL_COLUMN_2) |
| הכפילו מספר עשרוני במספר עשרוני אחר | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.multiply(DECIMAL_COLUMN_2) |
| חלוקה של עמודה עשרונית בעמודה אחרת והחזרת המנה | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.divide(DECIMAL_COLUMN_2) |
| חלוקה של עמודה עשרונית בעמודה אחרת והחזרת השארית | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.remainder(DECIMAL_COLUMN_2) |
| המרת מספר עשרוני למספר שלם | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.intValue() |
| המרת מספר עשרוני למספר מסוג long | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.longValue() |
| המרת מספר עשרוני למספר נקודה צפה | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.floatValue() |
| המרת מספר עשרוני למספר double | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.doubleValue() |
| בדיקה אם ערך עשרוני שווה לערך אחר | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.equals(DECIMAL_COLUMN_2) |
| מציאת הערך המקסימלי מבין שתי עמודות של מספרים עשרוניים | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.max(DECIMAL_COLUMN_2) |
| מציאת הערך המינימלי מבין שתי עמודות של מספרים עשרוניים | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.min(DECIMAL_COLUMN_2) |
| הזזת הנקודה העשרונית n מקומות שמאלה | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointLeft(n) |
| הזזת הנקודה העשרונית n מקומות ימינה | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointRight(n) |
| חישוב חזקה n של מספר עשרוני | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.pow(n) |
| הפיכת מספר עשרוני לשלילי | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.negate() |
| הסרת אפסים מיותרים במספר עשרוני | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.stripTrailingZeros() |
מחליפים את מה שכתוב בשדות הבאים:
-
OUTPUT_COLUMN: העמודה שמכילה את הפלט של הפעולה. -
DECIMAL_COLUMN: העמודה העשרונית שעוברת טרנספורמציה. -
DECIMAL_COLUMN_2: העמודה השנייה של המספרים העשרוניים שנכללת בפעולה, למשל כשמחברים את הערכים משתי עמודות של מספרים עשרוניים.