我有一个示例spark代码,我试图通过使用databricks ui中的typesafe application.conf和spark conf来访问spark配置提供的表的值。我使用的代码如下,
当我在databricks ui中点击run按钮时,作业正在成功完成,但是println函数正在打印dummyvalue,而不是thisistableone,thisistablebone。。。
我可以从spark ui看到,表名的配置被传递给spark作业,但是这些值没有反映在代码中。
try {
val inputConfig = AppConfig.getConfig("input")
val outputConfig = AppConfig.getConfig("output")
val tableA = inputConfig.getString("tableA")
val tableB = inputConfig.getString("tableB")
val tableC = outputConfig.getString("tableC")
println(
s"""
|$tableA
|$tableB
|$tableC
|""".stripMargin)
val userDataInTable = sparkSession.createDataFrame(Seq(
(1, "dummy", "dummy", "dummy")
)).toDF("id", "col2", "col3", "col4")
userDataInTable.show(false)
println("Completed Entry ")
} catch {
case e: Exception =>
sparkSession.stop()
e.printStackTrace
}
//application.conf contains below text,
spark.tableNameA="dummyValue"
spark.tableNameB="dummyValue"
spark.tableNameC="dummyValue"
input{
tableA=${spark.tableNameA}
tableB=${spark.tableNameB}
}
output{
tableC=${spark.tableNameC}
}
//AppConfig
val appConfig = ConfigFactory.load("application.conf")
def getConfig(moduleName: String): Config = {
val config = appConfig.getConfig(moduleName)
config
}
暂无答案!
目前还没有任何答案,快来回答吧!