db2导出的数据文件中,个别字段有回车,比如地址,备注等中文字段,从hdfs进入hive
出现数据丢失,因为hive默认就是回车来判断是否为一行,请问大家有遇到这种问题,
请指点怎么解决?
建表的时候把默认的改下
LINES TERMINATED BY '\n' =====>LINES TERMINATED BY ','
如果是使用sqoop的话,可以试试这个
-hive-delims-replacement 用自定义的字符串替换掉数据中的\n, \r, and \01等字符
如果使用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的目录下,重启集群