关于使用sqoop export 导出hdfs数据到mysql中文乱码问题

前几天使用sqoop将hdfs的数据导入mysql中,发现中文导进去后会乱码,我的执行命令是:

sqoop export  --connect "jdbc:mysql://10.19.157.*****?useUnicode=true&characterEncoding=utf-8" --table msg_rule_copy --username root --password root*** --export-dir $path --hadoop-home $home --direct

刚开始以为是mysql编码没有设置好的问题,后面发现mysql是没问题的,都是uft-8

然后用sqoop 测试一下sql语句插入,发现也是没问题的。

sqoop eval --connect "jdbc:mysql://10.19.*****"  --username root --p --query "insert into msg_rule_copy(module,levelId) values(‘中文‘,‘90‘);"

jdbc执行sql语句没问题,我就想,除非sqoop他不是用jdbc来插入数据的,后面突然想起一个快速执行的参数:

--direct                                                   Use direct
                                                              export fast
                                                              path

我把这个参数去掉,果然好了。

结论:--direct快速执行模式不支持中文插入。

时间: 2024-10-05 03:55:03

关于使用sqoop export 导出hdfs数据到mysql中文乱码问题的相关文章

pyhon/excel python导出到excel时的中文乱码问题

昨儿利用python+win32com将网页的表单导出到本地excel,遇到了输出乱码问题,解决方法: 将x改为x.decode('utf-8') setCall('sheet1',row,col,x.decode('utf-8')) 我的部分源码: self.xlBook = self.xlApp.Workbooks.Add() def setCell(self,sheet,row,col,value):#设置单元格的数据 "Set value of one cell" sht =

sqoop导出hive数据到mysql避免空值

sqoop导入导出问题 sqoop export --connect jdbc:mysql://ip:3306/eqpt_base_db?characterEncoding=utf8 --username root --password secret_password --table A_JQZ_T_GAS_GET_ORDER_NUM_INFO_S  --export-dir  /user/hive/warehouse/origin_ennenergy_energytrade.db/a_jqz_

Scrapy基础(十二)————异步导出Item数据到Mysql中

异步导出数据到Mysql中 上次说过从Item中同步写入数据库,因为网络的下载速度和数据库的I/O速度是不一样的所以有可能会发生下载快,但是写入数据库速度慢,造成线程的堵塞:关于堵塞和非堵塞,同步和异步的关系,因为没接触过,所以也不是很好的理解,这里查看了些资料,已做记录 链接1:https://www.zhihu.com/question/19732473;http://wiki.jikexueyuan.com/project/twisted-intro/ 实现异步写入mysql数据库的思路:

向hive上传数据时,中文乱码

sudo -u hive hive -e "use dataplat;load data local inpath '/home/dlht/data/test/2_times.csv' overwrite into table 2_times " 这时中文乱码 解决办法是,将数据转成utf-8..

SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码

场景: 在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web.xml 中进行编码过滤了,但还是乱码,让人很头疼. 解决办法: 第一种:这种方法,估计很多人都知道,那就在 controller 中的每个方法的  @RequestMappering 注解中进行编码设置,如下所示: @RequestMapping(value = "/queryUserById&qu

解决前端传数据产生的中文乱码问题

当出现前端传来的数据出现中文乱码的问题时,就修改Servers中的server.xml中的<Connector>标签,在 <Connector>标签中添加 URIEncoding="utf-8"就可以解决中文乱码的问题 加了URIEncoding="utf-8",从前台传过来的值就不会出现乱码问题. 原文地址:https://www.cnblogs.com/wjx2018/p/9390651.html

Java项目往数据库中插入数据,出现中文乱码

项目环境: JSP+Servlet+Mysql数据库 需要检查的地方: 1. java项目整体的编码格式为utf-8.并且将数据传递给数据库之前,数据是否依旧是正常的(可以通过打断点的方式一步步跟踪查看).如果此时就有问题,那么需要检查的地方是:各个jsp/java文件的编码格式是否为utf-8;接受参数以及响应时,是否设置了编码格式: request.setCharacterEncoding("utf-8"); response.setContentType("text/h

MySQL 插入数据时,中文乱码问题的解决(转)

当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句 show variables like 'character%'; 来查看当前数据库的相关编码集. 从上图中可以看到 MySQL 有六处使用了字符集,分别为:client .connection.database.results

ajax异步发送数据到后台中文乱码的问题

这是今天在做一个文本输入框数据自动补全的需求的时候遇到的一个问题,这个需求就是类似我们使用百度或者google的时候,在搜索框里面输入关键字然后会自动补全一些相应的关键字供我们选择. 自动补全的话我们需求异步的和后台进行数据交互,根据用户输入的关键字去匹配数据库中的记录,然后返回结果工用户选择,需要用到ajax进行数据交互.最开始的实现大致如下. //获取输入的关键字 var keyWord = $("#inputField").val(); //构造查询的url var url =