Databricks jdbc驱动程序。java.lang.ClassCastXeption:无法转换为java.lang.string

Databricks jdbc驱动程序。java.lang.ClassCastXeption:无法转换为java.lang.string,java,scala,apache-spark,jdbc,driver,Java,Scala,Apache Spark,Jdbc,Driver,正在尝试使用Spark从MS SQL Server读取表。以Databricks为例() 运行以下scala代码: val jdbcHostname = "hostname" val jdbcPort = 1433 val jdbcDatabase = "database" val jdbcUrl = s"jdbc:sqlserver://${jdbcHostname}:${jdbcPort};database=${jdbcDatabase}" import java.util.Properti

正在尝试使用Spark从MS SQL Server读取表。以Databricks为例()

运行以下scala代码:

val jdbcHostname = "hostname"
val jdbcPort = 1433
val jdbcDatabase = "database"
val jdbcUrl = s"jdbc:sqlserver://${jdbcHostname}:${jdbcPort};database=${jdbcDatabase}"
import java.util.Properties
val connectionProperties = new Properties()
connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")
获取以下异常:

scala> val stg = spark.read.jdbc(jdbcUrl, myTable, connectionProperties)
java.lang.ClassCastException: org.apache.spark.sql.ColumnName cannot be cast to java.lang.String
  at scala.collection.convert.Wrappers$JPropertiesWrapper$$anon$3.next(Wrappers.scala:414)
  at scala.collection.convert.Wrappers$JPropertiesWrapper$$anon$3.next(Wrappers.scala:409)
  at scala.collection.Iterator$class.foreach(Iterator.scala:891)
  at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
  at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
  at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
  at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:59)
  at scala.collection.mutable.AbstractMap.$plus$plus$eq(Map.scala:80)
  at org.apache.spark.sql.DataFrameReader.jdbc(DataFrameReader.scala:235)
  ... 52 elided

我应该怎么做才能克服这个java异常?

看起来您没有共享所有代码。另外,如果能够准确地知道抛出异常的行以及完整的stacktrace,那将是一件好事。代码取自-连接到SQL server并尝试选择一个表请放置整个堆栈跟踪。上面添加了堆栈跟踪必须确保-是否定义了
jdbcUsername
jdbcPassword
变量?