Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
K
kb
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • granite
  • kb
  • Wiki
  • sqoop

Last edited by 吴一博 Feb 22, 2021
Page history

sqoop

数据中特殊字符反斜杠“\”与空值“\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,数据正常

Clone repository
  • README
  • basic_guidelines
  • basic_guidelines
    • basic_guidelines
    • dev_guide
    • project_build
    • 开发流程
  • best_practice
  • best_practice
    • AlterTable
    • RDS
    • azkaban
    • create_table
    • design
    • elasticsearch
    • elasticsearch
      • ES运维
    • logstash
View All Pages