Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Sqoop将数据从oracle导入到hive时,数据错位问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在使用sqoop将数据从oracle导入hive时,对数据进行验证,发现hive中的数据比oracle的多,然后发现多出来的数据严重错位,大量字段为null

怀疑是某些字段含有了hive默认的分隔符,如“\n”,“\r”,“\01”

解决办法是增加参数--hive-drop-import-delims来解决

以下是http://archive.cloudera.com/cdh/3/sqoop/SqoopUserGuide.html中摘抄的内容,很好的解释了该参数

Hive will have problems using Sqoop-imported data if your database’s rows contain string fIElds that have Hive’s default row delimiters (\nand\rcharacters) or column delimiters (\01characters) present in them. You can use the--hive-drop-import-delimsoption to drop those characters on import to give Hive-compatible text data. Alternatively,you can use the--hive-delims-replacementoption to replace those characters with a user-defined string on import to give Hive-compatible text data. These options should only be used if you use Hive’s default delimiters and should not be used if different delimiters are specifIEd.

可以从中看出,“\n”、“\r”是hive默认的行分隔符,而“\01”则是hive默认的列分隔符,如果数据中含有这些分隔符,在不处理的情况下,hive就会对数据进行错误的分割,造成数据错位以及数据增多的问题,解决办法就是

第一种,使用--hive-drop-import-delims 来去除这些字符

第二种,使用--hive-delims-replacement来替换这些字符

大佬总结

以上是大佬教程为你收集整理的Sqoop将数据从oracle导入到hive时,数据错位问题全部内容,希望文章能够帮你解决Sqoop将数据从oracle导入到hive时,数据错位问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: