hive的String类型字段中包含NUL,通过sqoop导出mysql报错

1.问题

在hive表student中, name字段类型为String,其名字中含有 NUL(这是一个特殊字符) ,导致导出数据错位,会报错 numberFormatException等.

2.在文本中NUL的表现形式

2.1.hive中字符串类型的NUL在hdfs上的数据,用nodepad打开 是NUL,这和hive中的NULL值在hdfs上是 \N不一样

在这里插入图片描述

2.2.将hive字符串中包含NUL的数据通过dbeaver导出成hiveSql,用nodepad查看,能够看到不可见字符NUL
在这里插入图片描述
2.3 hive字符串中包含NUL的数据直接通过dbeaver查看,是看不到的
在这里插入图片描述

3.如何替换掉字符串中的NUL特殊字符

3.1 NUL在nodepad中如何替换
将查找模式改为正则表达式,输入\x00 ,即可搜索到NUL,可以替换成’’

在这里插入图片描述
3.2 hiveSql中如何替换

将NUL替换掉

 select  regexp_replace(STUDENT_NAME,'\\x00','')   from   ods.student_table;
 注意 '\x00' 需要加一个转义符\,正则中写'\\x00'
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值