sqoopclob从Oracle导入到hive 回车换行导致记录增多

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 '\001' --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 果然,问题解决,换行符全部被去掉。不过听说改变存储格式 或许也可以避免这个问题,希望有着经验的大神来回答一下。总结下来就这么多,希望能帮助大家


文章题目:sqoopclob从Oracle导入到hive 回车换行导致记录增多
转载源于:http://azwzsj.com/article/ghjjeg.html