Блок данных JDB c драйвер. java .lang.ClassCastExeption: нельзя привести к java .lang.string - PullRequest
0 голосов
/ 09 января 2020

Попытка прочитать таблицу с MS SQL Сервер с помощью Spark. Взял пример Databricks (https://docs.databricks.com/data/data-sources/sql-databases.html)

Выполнение следующего 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 исключение?

...