将列强制转换为 aDecimalType中的 aDataFrame似乎会更改可为 null 的属性。具体来说,我有一个不可为空的类型列DecimalType(12, 4),我将其转换为DecimalType(38, 9)using df.withColumn(columnName, df.col(columnName).cast(dataType))。这会产生一个具有预期数据类型的字段,但该字段现在可为空。有没有一种方法可以在不更改列的可空属性的情况下进行转换?
我在 Spark 2.2.1 和 Spark 2.3.0 中都观察到了这种行为。