在Scala中,val
关键字用于声明一个不可变的变量,一旦赋值后就不能再更改。这就是为什么我尝试重新赋值给modelFilePath
时会收到“reassignment to val”的错误。
modelFilePath
的声明从val
更改为var
,因为var
允许我们重新赋值
样例代码
val tbRDDName = ctxRead.read[String]("$.tableNameObj")
val tbName = inputRDD(tbRDDName).asInstanceOf[String]
val namespace = TableName.valueOf(tbName).getNamespaceAsString val modelFilePath1 = ctxRead.read[String]("$.modelFilePath")
val modelFilePath2 = ctxRead.read[String]("$.modelFilePath") var modelFilePath: String = if (tbName == "rhtable1") { modelFilePath1
} else if (tbName == "table1") { modelFilePath2
} else { throw new IllegalArgumentException(s"Unsupported tableName: $tbName")
}
代码跑的时候继续报错:
com.jayway.jsonpathPathNotFoundException:No results for path:$[`modelFilePath`]