问题描述

从Sqoop导入MySQL导入TINYINT(1)类型数据到hive(tinyint),数据为null

问题原因

Sqoop在抽取数据到Hive或者HDFS时,会自动将类型为Tinyint(1)的列转为boolean类型,这就是导致抽取到Hive或HDFS中的数据中只有0和1的原因。因为默认情况下,MySQL JDBC connector 会将Tinyint(1)映射为java.sql.Types.BIT类型,而Sqoop默认会映射为Boolean类型。

解决方案

MySQL JDBC connector上添加tinyInt1isBit=false。比如:jdbc:mysql://localhost/test?tinyInt1isBit=false

注意:如果有多个参数,需要用&符号拼接,如果是在shell脚本中执行,&符号需要转义 ‘&’

jdbc:mysql://14.21.xx.21:51x3x/${database}?zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false

官网

https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_mysql_import_of_tinyint_1_from_mysql_behaves_strangely

27.2.5. MySQL: Import of TINYINT(1) from MySQL behaves strangely

Problem: Sqoop is treating TINYINT(1) columns as booleans, which is for example causing issues with HIVE import. This is because by default the MySQL JDBC connector maps the TINYINT(1) to java.sql.Types.BIT, which Sqoop by default maps to Boolean.

Solution: A more clean solution is to force MySQL JDBC Connector to stop converting TINYINT(1) to java.sql.Types.BIT by adding tinyInt1isBit=false into your JDBC path (to create something like jdbc:mysql://localhost/test?tinyInt1isBit=false). Another solution would be to explicitly override the column mapping for the datatype TINYINT(1) column. For example, if the column name is foo, then pass the following option to Sqoop during import: --map-column-hive foo=tinyint. In the case of non-Hive imports to HDFS, use --map-column-java foo=integer.

巨坑:从Sqoop导入MySQL导入TINYINT(1)类型数据到hive(tinyint),数据为null相关推荐

  1. sqoop从mysql导入hdfs_3.使用sqoop从mysql 导入数据到hdfs

    使用sqoop从mysql 导入数据到hdfs 注意: 需要将mysql的jdbc驱动包放到lib目录下 在conf目录中,执行 cp sqoop-env-template.sh sqoop-env. ...

  2. sqoop从mysql导入hive字符集的问题乱码问题

    sqoop从mysql导入hive字符集的问题 Mysql都是使用utf8的字符集:所以这个与Mysql的配置无直接关系:但是可以通过修改Mysql上面的表默认字符集来解决,这个是不需要修改Hive配 ...

  3. sqoop从mysql导入数据到hdfs_利用Sqoop将数据从数据库导入到HDFS

    基本使用 如下面这个shell脚本: #Oracle的连接字符串,其中包含了Oracle的地址,SID,和端口号 CONNECTURL=jdbc:oracle:thin:@20.135.60.21:1 ...

  4. access数据库文件导入mysql数据库文件怎么打开,Access数据库从外部数据导入文本文件和VF数据库-dbf文件怎么打开...

    亲爱的小伙伴们,我们又见面了! 上一期我们学习了Access数据库从外部数据导入Excel文件,下图学生成绩表2就是我们新导入的数据: 导入Excel文件 今天我们来学习如何从外部数据导入文本文件和V ...

  5. sqoop抽取mysql的mediumtext字段类型,被转成ASCII

    在使用sqoop抽取mysql中到hive时,其中两个字段数据发生了如下变化: 明显该字段被转成了ascii类型,查看Mysql中数据库表字段是mediumtext类型. 估计是不识别这种类型,找了一 ...

  6. sqoop从mysql导入hdfs_sqoop 从mysql导入数据到hdfs、hive

    1.上传sqoop安装包 2.安装和配置 在添加sqoop到环境变量 将数据库连接驱动拷贝到$SQOOP_HOME/lib里 3.使用 第一类:数据库中的数据导入到HDFS上 sqoop import ...

  7. SQOOP 从 MySQL 导入到 Hive 之 Python 脚本

    目录 1.当前业务数据收集详情 2.脚本部署树形图 3.同步 sqoop + python的 管理脚本到 inf 环境

  8. Hadoop sqoop从MySQL导入数据到HDFS

  9. c 批量导入mysql数据库_C#.NET中如何批量插入大量数据到数据库中

    在WEB项目开发过程中有时会碰到批量插入数据到数或者是将EXCEL文件据入到数据库中.为了方便实现可以先将EXCEL导入到GRIDVIEW中然后一次批量插入.实现代码如下: 前台代码 后台代码: // ...

最新文章

  1. LeetCode实战:回文数
  2. 霹雳小组4显示不了服务器,霹雳小组4-指令码
  3. jittor和pytorch生成网络对比之sgan
  4. 压力测试工具Ab简介
  5. 意念实时转语音!Facebook的非植入式脑机接口,解码准确率达到76%
  6. weibo4j中的 jar解释
  7. IronRuby and ASP.NET MVC
  8. Soap UI 负载测试
  9. jenkins 部署文档
  10. POJ 3660 Cow Contest(传递闭包floyed算法)
  11. java 动态队列_RabbitMq之动态修改队列参数
  12. android git项目管理,Android Studio中如何使用Git和Github来管理项目
  13. 1101 害死人不偿命的猜想 PAT
  14. VMware Fusion 启动物理磁盘及U盘的方法
  15. 数字技术加持 华为云为测绘地理信息产业夯实“云底座”
  16. 服务器硬盘热插拔后告警,IBM硬盘所谓支持热插拔带来的问题
  17. Linux CentOS 学习笔记
  18. noi.openjudge 二分法求函数的零点
  19. html相同数据合并单元格合并单元格,Javascript合并表格中具有相同内容单元格示例...
  20. PPT这样学就对了之首页制作

热门文章

  1. 基于模型与不基于模型的深度增强学习_CVPR2018: 基于时空模型无监督迁移学习的行人重识别...
  2. SQL关于数据库完整性
  3. 21. Kotlin学习笔记 (一) 基本语法
  4. RSA加解密用途简介及java示例
  5. 预算执行审计计算机审计方法,预算执行审计中计算机审计思路和SQL语句运用.doc...
  6. PC-如何禁用 Cookie
  7. 第二课--C语言基础(3部分--共三部分)
  8. pytorch 入门学习反向传播-4
  9. 【前端 · 面试 】HTTP 总结(九)—— HTTP 协商缓存
  10. 分数等级_山东新高考:quot;6选3quot;等级考分数是怎么换算出来的