【发布时间】:2018-06-12 08:25:04
【问题描述】:
我正在尝试从 spark on demand HDInsight 群集读取/写入数据到 Azure SQL 数据仓库。
我可以通过using a script action to install the jdbc driver 从普通 HDInsight spark 集群执行此操作,但我认为无法在按需集群上运行脚本操作。
我试过了
- 将文件从 %user%.m2\repository\com\microsoft\sqlserver\mssql-jdbc\6.2.2.jre8 复制到构建 spark 代码所在位置旁边名为 jars 的文件夹中的 blob 存储。
- 在构建的jar文件中包含驱动依赖
这两个都导致了 java.lang.NoClassDefFoundError
我对 scala/maven/JVM/etc 不太熟悉,所以不确定在这个 SO 问题中还有什么可以尝试或包含的内容。
我尝试运行的 Scala 代码是
val sqlContext = SparkSession.builder().appName("GenerateEventsSql").getOrCreate()
val jdbcSqlConnStr = "jdbc:sqlserver://someserver.database.windows.net:1433;databaseName=myDW;user=admin;password=XXXX;"
val tableName = "dbo.SomeTable"
val allTableData = sqlContext.read.format("jdbc")
.options(Map(
"driver" -> "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"url" -> jdbcSqlConnStr, "dbtable" -> tableName)
)
.load()
【问题讨论】:
-
究竟是哪个类找不到?
标签: scala azure-hdinsight azure-data-factory mssql-jdbc azure-sqldw