[英]Export Data from Hadoop using sql-spark-connector (Apache)
I am trying to export data from Hadoop to MS SQL using Apache Spark SQL Connector as instructed here sql-spark-connector which fails with exception java.lang.NoSuchMethodError: com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.writeToServer (Lcom/microsoft/ sqlserver/jdbc/ISQLServerBulkRecord;)V
根據官方文檔Supported Versions
我的開發環境:
Hadoop 版本:2.7.0
火花版本:2.4.5
Scala 版本:2.11.12
MS SQL 版本:2016
我的代碼:
package com.company.test
import org.apache.spark.sql.SparkSession
object TestETL {
def main(args:Array[String]):Unit = {
val spark:SparkSession = SparkSession
.builder()
.getOrCreate()
import spark.implicits._
// create DataFrame
val export_df = Seq(1,2,3).toDF("id")
export_df.show(5)
// Connection String
val server_name = "jdbc:sqlserver://ip_address:port"
val database_name = "database"
val url = server_name + ";" + "databaseName=" + database_name + ";"
export_df.write
.format("com.microsoft.sqlserver.jdbc.spark")
.mode("append")
.option("url", url)
.option("dbtable", "export_test")
.option("user", "username")
.option("password", "password")
.save()
}
}
我的 SBT
構建.sbt
我執行的命令行參數
/mapr/abc.company.com/user/dir/spark-2.4.5/bin/spark-submit --class com.company.test.TestETL /mapr/abc.company.com/user/dir/project/TestSparkSqlConnector .jar
我反編譯了 mssql-jdbc-8.2.0.jre8.jar 以檢查它是否缺少 SQLServerBulkCopy.writeToServer 方法實現,但事實並非如此。
關於如何解決這個問題的任何見解?
這是一個兼容性錯誤,請參考此鏈接,它將解釋錯誤或僅選擇兼容版本。 gitHub 鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.