Я установил MySql в виртуальной машине Linux (на рабочем столе Windows), я пытаюсь подключиться к MySql из приложения Spark, запущенного в родительской ОС Windows.При подключении я получаю ошибку ниже ...
Вот пример кода
def main(args: Array[String]) {
val conf = new SparkConf()
.setAppName("LoadMySql")
.setMaster("local[*]")
.set("spark.sql.warehouse.dir", "file:///C:/temp")
val spark = SparkSession
.builder
.config(conf)
.getOrCreate()
val option = Map("url" -> "jdbc:mysql://VMIP:3306/TestDB", "dbtable" -> "Users", "user" -> "root", "password" -> "*****", "driver" -> "com.mysql.jdbc.Driver")
val dataRDD = spark.sqlContext.read.format("org.apache.spark.sql.jdbc").options(option).load()
}
Ошибка ...
Exception in thread "main" java.lang.NullPointerException
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:158)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation.<init>(JDBCRelation.scala:117)
at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:53)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:315)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:149)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:122)
at com.Lab.SparkAPI.LoadMySql$.main(LoadMySql.scala:29)
at com.Lab.SparkAPI.LoadMySql.main(LoadMySql.scala)
Я уже изменил свойство bind-address в /etc/mysql/mysql.conf.d/mysqld.cnf.Я пробовал несколько вариантов для bind-address - IP-адрес Linux linux, 0.0.0.0 и полное его комментирование.
Пока ни один из вариантов не работал.
Я предполагаю, что мое приложение для Windowsне удалось получить доступ к MySql, работающему на виртуальной машине.
Может ли кто-нибудь помочь мне решить эту проблему?
Заранее спасибо.