搜索
您的当前位置:首页正文

解决Sqoop导出到MySQL中文乱码问题

来源:意榕旅游网

最近在做项目的时候将hive中的数据导入到mysql的时候出现了中文乱码,查了好久才得以解决,给大家分享一下。

首先将MySQL的编码都设置为utf-8

set character_set_results = utf8;

一般在创建表的时候可以使用character set utf8 collate utf8_general_ci设置编码,例如

CREATE TABLE taobaoinfo (
  rowkey VARCHAR(200) NOT NULL PRIMARY KEY, 
	date VARCHAR(200),
	url VARCHAR(200),
	itemId VARCHAR(200),
	itemName VARCHAR(200),
	type VARCHAR(200),
	location VARCHAR(200),
	current_price VARCHAR(200),
	original_price VARCHAR(200),
	saleNum VARCHAR(200),
	place VARCHAR(200),
	shopId VARCHAR(200),
	restNum VARCHAR(200),
	shopName VARCHAR(200)	
)character set utf8 collate utf8_general_ci;

关键点是这句话:?useUnicode=true&characterEncoding=utf-8

sqoop export \
--connect "jdbc:mysql://hadoop03:3306/taobao?useUnicode=true&characterEncoding=utf-8" \
--username root \
--password 123456 \
--table taobaoinfo \
--export-dir /user/hive/warehouse/taobao.db/taobaoinfo2 \
--input-fields-terminated-by '\001'

问题解决~~

因篇幅问题不能全部显示,请点此查看更多更全内容

Top