2 yanxian007 yanxian007 于 2016.04.15 09:44 提问

db2 出来的数据文件有回车,进Hive出现数据丢失怎么解决 1C

db2导出的数据文件中,个别字段有回车,比如地址,备注等中文字段,从hdfs进入hive
出现数据丢失,因为hive默认就是回车来判断是否为一行,请问大家有遇到这种问题,
请指点怎么解决?

3个回答

u010704108
u010704108   2016.04.20 09:45

建表的时候把默认的改下
LINES TERMINATED BY '\n' =====>LINES TERMINATED BY ','

Istvan563
Istvan563   2016.06.28 16:47

如果是使用sqoop的话,可以试试这个
-hive-delims-replacement 用自定义的字符串替换掉数据中的\n, \r, and \01等字符

szx2544163762
szx2544163762   2016.11.02 17:00

如果使用sqoop来迁移数据到hive中,可以在sqoop的命令中添加一个--hive-drop-import-delims来去除原始数据中的\n,\r和\01这样的字符,这样就ok了

如果想使用多字段分隔符或换行符的话,因为hive只支持单字符的,可以参考http://www.aiuxian.com/article/p-2313749.html
需要重写hive的TextInputFormat和org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat类,并把它们打成jar包加入到hive的lib目录下和hadoop的目录下,重启集群

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!