加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqoop clob从Oracle导入到hive ? 回车换行导致记录增多

发布时间:2020-12-12 15:01:56 所属栏目:百科 来源:网络整理
导读:sqoop import --hive-import --hive-overwrite --connect jdbc:oracle:thin:@192.168.92.136:1521:cyporcl --username ODS --password 'od154DS$!(' -m 1 --hive-database ODS --table Q_TRA_DISPUTESTATUS --fields-terminated-by '01' --hive-drop-impor

sqoop import --hive-import --hive-overwrite --connect jdbc:oracle:thin:@192.168.92.136:1521:cyporcl --username ODS --password 'od154DS$!(' -m 1 --hive-database ODS --table Q_TRA_DISPUTESTATUS --fields-terminated-by '01' --hive-drop-import-delims --null-string 'N' --null-non-string 'N' --map-column-java DISPUTERESULT=String

DISPUTERESULT 这个字段是Oracleclob 类型的,里面有回车, 加载到hive 里面导致 记录增多。


--map-column-java和--map-column-hive两个参数都要显示给出;还需要设置--hive-drop-import-delims这样才能顺利导出数据。

.导入的列有换行符如何解决
本以为万事大吉,万万没想到导入的列有nclob类型,里面存储了一篇篇文章,势必有着换行符。果不其然,hive查询数据全部错乱, 查询资料发现--hive-delims-replacement(替换/n,/r等符号用你指定的字符)和--hive-drop-import-delims参数。可添加上去发现并没有什么卵用,没有起作用。百度goole很久,终于发现一篇帖子,http://stackoverflow.com/questions/28076200/hive-drop-import-delims-not-removing-newline-while-using-hcatalog-in-sqoop
意思是要用--map-column-java参数来显示指定列为String类型。我的解决方案为 --map-column-java 我的CLOB列=String 果然,问题解决,换行符全部被去掉。不过听说改变存储格式 或许也可以避免这个问题,希望有着经验的大神来回答一下。总结下来就这么多,希望能帮助大家

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读