不匹配的输入 '$' 期望 StringLiteral Inpath 接近 load 语句中的 "inpath"



在将数据从一个文件加载到配置单元表时,我想从spark-submit命令传递一个路径。我正在尝试使用以下代码传递该路径,但它显示的输入"$"不匹配,在load语句中应为"Inpath"附近的StringLiteral Inpath。

obj hive_scala{
def main(args:Array[String]){
// creating sparksession
val dbsession=HiveWareHouseSession.session(sparksession).build()
dbsession.setDatabase("dbname")
if(args.length<1){
System.exit(1)
}
var a="load data inpath $args(0) into table tablename";
val b=dbsession.executeUpdate(a)
}
}

然后使用下面的spark-submit命令:spark-submit——类类名projectjar位置(从这里我需要将数据加载到表中(有人能建议我应该如何使用spark-submit传递此路径,以及需要在scala中更改哪些代码吗。

将字符串更改为

var a=s"load data inpath ${args(0)} into table tablename";

's'前缀标记字符串插值。{}应用于表达式

使用s插值时似乎缺少一些字符:

obj hive_scala {
def main(args:Array[String]){
// creating sparksession
val dbsession = HiveWareHouseSession.session(sparksession).build()
dbsession.setDatabase("dbname")
if(args.length < 1){
System.exit(1)
}
var a = s"load data inpath ${args(0)} into table tablename";
val b = dbsession.executeUpdate(a)
}

}

最新更新