最近在做项目的时候将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'
问题解决~~
因篇幅问题不能全部显示,请点此查看更多更全内容