我使用Spark JDBC将数据摄取到Mysql表中。如果表不存在,它还会创建一个表。许多文本都有特殊字符。如果遇到任何特殊字符,则表示摄取失败。我通过在MySQL表中手动设置字符集utf8解决了这个问题。
是否可以在spark JDBC中创建表的时候设置CHARACTER SET utf8?
我使用DataFrames将数据保存到MySQL中。
df.write
.format("jdbc")
.option("url", "jdbc:mysql://localhost")
.option("dbtable", "spark.tweet")
.option("user", "root")
.option("password", "root")
.mode(SaveMode.Append)
.save()发布于 2018-12-19 00:05:46
实际上,字符集由您对MySQL数据库的访问权限决定。因此,最好的方法是在jdbc url中设置字符集,如下所示:
jdbc:mysql://${jdbcHostname}:${jdbcPort}/${jdbcDatabase}?user=${jdbcUsername}&password=${jdbcPassword}&useUnicode=true&characterEncoding=UTF-8https://stackoverflow.com/questions/53833048
复制相似问题