Mode
data class Mode(val restrictWidening: Boolean, val restrictNarrowing: Boolean, val strictType: Boolean, val strictNullable: Boolean)
If restrictWidening is true, dataFrame columns not described in targetSchema would not be saved (otherwise, would be saved as is). If restrictNarrowing is true, targetSchema fields that are not nullable and do not exist in dataFrame will produce an exception (otherwise, would not be saved). If strictType is true, dataFrame columns described in targetSchema with non-compatible type will produce an exception (otherwise, would be saved as is). If strictNullable is true, targetSchema fields that are not nullable and contain nulls in dataFrame will produce an exception (otherwise, would be saved as is with nullable = true).