在Scala上,如何通过sql语句将参数传递给文件并使用sqlContext.sql?

时间:2019-03-02 09:56:45

标签: sql scala apache-spark dynamic

我的sql查询很长,并且存储在文件中。我想通过传递参数来使n子句动态化。 在scala中,我想使用spark where(查询文件)执行此操作。请帮忙。

sqlcontext.sql

在文件上,我拥有:

val FromDate = "2019-02-25"

val sqlfile = fromFile("queryfile").getLines.mkString

val result = sqlContext.sql(sqlfile)

1 个答案:

答案 0 :(得分:0)

很简单,使用scala的replace方法:

val FromDate = "2019-02-25"
val s = "Select col1, col2 from table1 where transdate = '${FromDate}'"
val withParameters= s.replace("${FromDate}",FromDate )
println(withParameters)
val result = sqlContext.sql(withParameters)