关于sparkSQL向MySQL写数据,网上已经有很多代码了。我所保存的数据中含有中文,因此编码存在问题,数据导入成功,但是乱码。本篇文章主要记录较简洁的一种解决办法。
先展示下错误数据:

解决办法:
- 首先在MySQL中创建一个table,注意字段要和所保存的字段一致。
- 之后设置各个中文字段的编码格式。注意:是设置字段,如果只设置table的编码格式为UTF8,还是会失败。
- sparkSQL的代码的设置。
建表:
CREATE TABLE Top3Goods(
area varchar(30),
product_name varchar(30),
total_clicks bigint,
city_remarks varchar(50));
#参数含义:旧字段名 第二个:新字段名
alter table Top3Goods change area area varchar(30) character set utf8;
alter table Top3Goods change product_name product_name varchar(30) character set utf8;
alter table Top3Goods change city_remarks city_remarks varchar(50) character set utf8;
sparkSQL的代码:在URL末尾加上UTF-8的编码设置
?useUnicode=true&characterEncoding=utf8
.mode(SaveMode.Append)模式表示追加。
val frame: DataFrame = spark.sql<

本文介绍如何解决SparkSQL向MySQL写入中文数据时出现的乱码问题。通过设置MySQL字段编码为UTF8,并在SparkSQL连接URL中加入相应的编码参数,实现正确写入。
最低0.47元/天 解锁文章
1400

被折叠的 条评论
为什么被折叠?



