顯式鑄造似乎路要走。
第一次嚐試與一個列,是否能解決您的問題。
如果是這樣,您可以編寫一個函數,把所有十進製列在一定精度,是這樣的:
def convert_decimal_precision_scale (df、精度、規模):#遍曆每個列和小數列轉換為指定的列df的精度和等級。列:data_type = df.schema(列)。數據類型如果isinstance (data_type DecimalType): df = df。withColumn(列,坳(列)。鑄造(DecimalType(精度、範圍)))返回df