为什么if判断中的Indexer那一行会报错?

for循环外部定义了Indexer对象后在IF判断中不可以重新赋予吗?因为我之后想在循环外部调用这个对象,应该怎么解决这个问题?

// 读取以csv格式存储的数据
val data1 = spark.read.format("csv").option("header", "true").
option("inferSchema", true).
load("C:\Users\Administrator\Desktop\11111.csv")
val cols=List("CXDDZL", "QDZL", "DCZDZL", "JJ", "ZRDW", "ZRGM", "BCZZ", "SBSC", " DCTJMD", "NZHL", "KXD", "HYBHD")
var label =List("JSJG")
val Indexer =new StringIndexer()
for ( col <- cols){
// 空值处理
val data2 = data1.na.fill(Map(col -> 0))
if (true){
Indexer=Indexer.setInputCol(col).setOutputCol(col+"index").fit(data2).transform( data2)
cols(col)=col+"index"
}
}

https://blog.csdn.net/u013176681/article/details/38843747