memsqlConnector在Spark 2.4结构流中引发异常

时间:2019-02-24 12:53:08

标签: apache-spark spark-structured-streaming memsql

我在Spark结构化流应用程序中使用memsql-spark-connector 2.0.6。

val map: Map[String, String] = Map(
("spark.memsql.host" -> "XXX",
"spark.memsql.port" -> "3306",
"spark.memsql.user" -> "ABC",
"spark.memsql.password" -> "YYY",
"spark.memsql.defaultDatabase" -> "ZZZ")
var sbuilder = SparkSession
  .builder()
  .config(sConf)
  .config("spark.sql.autoBroadcastJoinThreshold", "-1")
  .config("spark.sql.crossJoin.enabled", "true")

map.foreach(f => {
  sbuilder = sbuilder.config(f._1, f._2)
}
)
val eventsToMemSql = //readStream

eventsToMemSql.writeStream.option("checkpointLocation", "/checkpoint/events").foreachBatch{(df, batchId) => {
  df.persist()
  df.write.format("com.memsql.spark.connector").mode("append").save("tablename")
  df.unpersist()
}}.start

我已经在sparkConf对象中设置了memsql参数。

这给出了以下异常:

  

诊断:用户类抛出异常:   org.apache.spark.sql.streaming.StreamingQueryException:无法创建   PoolableConnectionFactory(连接属性   “ zeroDateTimeBehavior”可接受的值为:“ CONVERT_TO_NULL”,   'EXCEPTION'或'ROUND'。值'convertToNull'是不可接受的。)

在另一个spark2.2批处理应用程序中写入成功。

此属性是在MemSqlConnectionPool.scala的源代码中设置的:

newPool.addConnectionProperty("zeroDateTimeBehavior", "convertToNull")

com.mysql.cj.conf.PropertyDefinitions中的源代码检查CONVERT_TO_NULL

请提出如何解决此异常的方法。

0 个答案:

没有答案