解决datax抽hdfs数据到mysql之null值变成 \N 或者 转换错误 的问题

修改datax源码plugin-unstructured-storage-util下的UnstructuredStorageReaderUtil.class

加上一个判断,因为在hdfs中,null值存储的是 \N ,所以需要把它转换成 null存储到Mysql中 

if (columnValue.equals(nullFormat) || columnValue.equals("\\N")) {
   LOG.info("********** string的 原始值 为 "+columnValue+" ******");
   columnValue = null;
}

改好后的源码包见我的资源 

======================================================================

以后博客的内容都是通过微信公众号链接的形式发布,之后迁移到公众号的文章都会重新修正,也更加详细,对于以前博客内容里面的错误或者理解不当的地方都会在公众号里面修正。

欢迎关注我的微信公众号,以后我会发布更多工作中总结的技术内容。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是一个使用DataXMySQL数据导入HDFS的示例。 1. 安装配置DataX 首先需要安装并配置DataX,请参考DataX的官方文档。 2. 创建MySQL表 在MySQL创建一个表,用于存储需要导入HDFS数据。例如,创建一个名为“employee”的表,包含id、name和age三个字段: ``` CREATE TABLE employee ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) DEFAULT NULL, age INT(11) DEFAULT NULL, PRIMARY KEY (id) ); ``` 3. 填充MySQL数据MySQL插入一些数据,用于测试数据导入HDFS的功能。例如,向“employee”表插入三条记录: ``` INSERT INTO employee (name, age) VALUES ('John', 25); INSERT INTO employee (name, age) VALUES ('Mary', 30); INSERT INTO employee (name, age) VALUES ('Tom', 35); ``` 4. 配置DataX任务 在DataX配置一个任务,将MySQL数据导入到HDFS。以下是配置文件的内容: ``` { "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "root", "password": "password", "column": [ "id", "name", "age" ], "connection": [ { "jdbcUrl": [ "jdbc:mysql://localhost:3306/test" ], "table": [ "employee" ] } ] } }, "writer": { "name": "hdfswriter", "parameter": { "defaultFS": "hdfs://localhost:9000", "fileType": "text", "path": "/user/hadoop/datax/mysql/", "fileName": "employee.txt" } } } ] } } ``` 以上配置文件,包含一个任务,任务包含一个MySQL的reader和一个HDFSwriter。其MySQL的reader用于读取MySQL数据HDFSwriter用于将数据写入到HDFS的文本文件。具体的参数含义可以参考DataX官方文档。 5. 运行DataX任务 在DataX的安装目录下,使用如下命令运行DataX任务: ``` python bin/datax.py job/job.json ``` 运行完成后,可以在HDFS的/user/hadoop/datax/mysql/目录下找到生成的employee.txt文件,文件包含MySQL的所有数据。 以上就是一个使用DataXMySQL数据导入HDFS的示例,具体的操作还需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据私房菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值