我正在使用azure-sqldb库用于Spark连接到Azure数据库。
在GitHub示例中,他们在代码中定义了登录凭据。我是Scala的新手,我习惯了R Studio,在那里我可以让GUI提示我输入密码,例如:
password <- rstudioapi::askForPassword("Please enter your password")
在Scala和IntelliJ中实现相似功能的最佳方法是什么? 目标是使登录凭据远离代码,并且最好每个会话仅输入一次(而不是每次运行代码时)。
当前代码:
object dev extends SparkSessionWrapper {
def main(args: Array[String]): Unit = {
println(data.head())
spark.stop()
}
val statsDB = Config(Map(
"url" -> "my.database.url",
"databaseName" -> "myDB",
"dbTable" -> "myTable",
"user" -> "myLogin",
"password" -> "myPWD",
"connectTimeout" -> "600",
"queryTimeout" -> "12000"
))
val data: DataFrame = spark.read.sqlDB(statsDB)
}
答案 0 :(得分:0)
您可以在Scala中使用Java库。我尝试了JOptionPane。像这儿: JOptionPane to get password 它在javax.swing库下,该库是任何标准Java SE安装的一部分,因此无需添加依赖项。您只需要scala-swing依赖项:
libraryDependencies += "org.scala-lang" % "scala-swing" % scalaVersion.value