I dont understand this code to be frank.. will try share around to make sense. Hope there was a work around. For the time being, I reverted the datatype to float in our iceberg/parquet and it works. But it has an issue that if I store round(value, 2) as float -> then 0.13 is actually stored as 0.129999999 .. I am assuming this is because float is an approximation type and hence cannot store exact values like decimal.