利用datax將數據從mysql導入到hdfs上,出現列配置信息有誤,因爲您的配置的任務中,源頭讀取字段數和寫入的字段數不相等

文章讲述了在使用DataX进行数据迁移过程中遇到的列配置错误,由于源数据包含脏数据如 和 导致的问题。作者通过将HDFS数据转换为ORC格式,统一字段类型为string,并调整MySQL对应字段来暂时解决问题。后来发现数据数量不一致,通过将文本格式转为ORC,使用transformer去除 以及改变分隔符为01解决了数据错位和解析问题。
摘要由CSDN通过智能技术生成

利用datax將數據從hdfs導入到mysql上,出現列配置信息有誤,因爲您的配置的任務中,源頭讀取字段數和寫入的字段數不相等

在这里插入图片描述
當時出現這個問題,卡了非常久的時候,後面發現是我的源數據有很多的髒數據,比如\r\n,\t等等
當時的解決辦法就是:
利用hive load時指定orc格式,做法是再重新創建一張表,表的格式是orc,orc處理髒數據比較好,然後再重新導入數據,
然後把hdfs表中的所有字段換成string類型,與之對應的是mysql的字段數據類型也需要做出相應的變化,當時是解決了這個問題。但是治標不治本

後面采集的數據的時候又發現了一個bug,就是雖然mysql導入導入hdfs的數據可以成功,但是發現hdfs的表數據數量和mysql的數據數量不一致,數據源頭發生了這麽大的變化
當時解決方法是這樣的:
1.先將ods的表從text格式換為orc
2.在datax中加入transformer,將\r\n的數據給去掉
發現可以解決問題,但是後面發現又有問題,數據的解析依舊發生了錯位,有些日期字段的數據是一些文字,想了很久,後面的解決辦法是,將使用\t的分隔符換位\001,就可以解決所有的問題了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ysksolution

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

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

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

打赏作者

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

抵扣说明:

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

余额充值