עבודה עם נתונים עשרוניים

בדף הזה מוסבר איך להמיר שדות למספרים עשרוניים ולבצע בהם טרנספורמציות כשמכינים נתונים בסביבת העבודה של Wrangler ב-Cloud Data Fusion Studio.

קריאת נתונים עשרוניים

  1. עוברים לסביבת העבודה של Wrangler ב-Cloud Data Fusion.
  2. פותחים אובייקט, כמו טבלה, ממסד נתונים או מקובץ 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)}
      

טרנספורמציה של נתונים עשרוניים

עמודות עשרוניות ב-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: העמודה השנייה של המספרים העשרוניים שנכללת בפעולה, למשל כשמחברים את הערכים משתי עמודות של מספרים עשרוניים.

המאמרים הבאים