Нет необходимости что-либо уменьшать.Вы можете просто добавить список известных столбцов: val
val schema = StructType(Seq(
StructField("doubleColumn", DoubleType, false),
StructField("longColumn", LongType, false)
) ++ ar.map(item => StructField(item, DoubleType, true))
)
Вы также можете
ar.foldLeft(StructType(Seq(
StructField("doubleColumn", DoubleType, false),
StructField("longColumn", LongType, false)
)))((acc, name) => acc.add(name, DoubleType, true))