![](/img/trans.png)
[英]Limit number of connection to MySQL database using JDBC driver in spark
[英]How can we read invalid date column in spark scala from mysql server using jdbc driver url (connection)
从 mysql 服务器读取此列时出现错误
ID | 日期 |
---|---|
1 | 0000-00-00 |
2 | 0000-00-01 |
在上述数据集中我们可以使用 mysql 服务器处理 0000-00-00 附加参数 zeroDateTimeBehavior=convertToNull
但我不知道如何处理这种类型的日期 0000-00-01
帮帮我我收到的错误消息
Exception in User Class: org.apache.spark.SparkException : Job aborted due to stage failure: Task 0 in stage 6.0 failed 4 times, most recent failure: Lost task 0.3 in stage 6.0 (TID 11) (10.100.4.111 executor 1): java.sql.SQLException: YEAR
我正在使用这个
val a = "jdbc:mysql://<host_name>:3306/<database_name>?zeroDateTimeBehavior=convertToNull"
val mysqlServerDF = sparkSession.read.format("jdbc")
.option("url", a)
.option("query", sql)
.option("user",jdbcUserName)
.option("password", jdbcPassword)
.load()
sql 是一个 sql 查询示例“从表中选择 *”
如果无法在数据库中修复此类日期,我认为最好的办法是直接在sql
查询中处理它。 例如,我们可以根据文档比较有效日期范围,即“1000-01-01”到“9999-12-31”:
val sql = """
select
id,
case
when
not cast(date as char(10))
between '1000-01-02' and '9999-12-30'
then
null
else
date
end
from table1"""
val mysqlServerDF = sparkSession.read.format("jdbc")
.option("url", a)
.option("query", sql)
.option("user",jdbcUserName)
.option("password", jdbcPassword)
.load()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.