数据中特殊字符反斜杠“\”与空值“\N”矛盾的问题
情况1、数据直接入hive表(加如下参数)
--hive-import
--hive-database lake_ic
--hive-table company_justice_unfreeze
现象:
mysql中的数据含反斜杠"",如"张玉清\刘加良\夏国华", 通过sqoop导入hive表,null值设为\N(加如下参数),
--null-string '\N'
--null-non-string '\N'
通过hive表查询入文件,再通过mysqlimport从文件导入mysql,文件中数据为"张玉清\刘加良\夏国华",空值为"\N";mysql中数据变为"张玉清刘加良夏国华",空值正常为Null;
情况2、数据不写入hive表,直接写入hdfs文件
设置转义字符、换行符、定界符
--escaped-by \
--fields-terminated-by '\t'
--lines-terminated-by '\n'
现象:
mysql中的数据含反斜杠"",如"张玉清\刘加良\夏国华", 通过sqoop导入hdfs文件,null值设为\N(加如下参数),
--null-string '\N'
--null-non-string '\N'
hdfs文件关联hive表查询入文件,再通过mysqlimport从文件导入mysql,文件中数据为"张玉清\刘加良\夏国华",空值为"\N";MySQL中数据为"张玉清\刘加良\夏国华",空值为"\N";
解决办法: 单独写一个脚本将情况2中文件里的空值"\N"转换成"\N",再通过mysqlimport导入MySQL,数据正常