来自mysql的Sqoop import null值不能替换Null

时间:2017-02-18 02:55:26

标签: mysql null hive sqoop

在mysql中有一个表,其中一些列具有空值。我想sqoop将表导入到hive。当我执行sqoop导入时,我在mysql表中具有null的列中获取所有空值。

我正在做以下

sqoop import --connect jdbc:xxxxxx --username xxxx --password xxxx \
--query "select * from  hive_db.xxxx where \$CONDITIONS" --null-string '' \
--null-non-string '' -m 1 --hive-import --hive-database hivedatabase \
--hive-table table --as-parquetfile --create-hive-table --target-dir /user/hive/warehouse/hivedatabase.db/table

但我仍然将hive列​​作为Null intsead为空

为什么会这样?我如何获得所需的结果。

2 个答案:

答案 0 :(得分:1)

在将数据作为文本文件导入以指定空值时使用。

解决方法可能是更改查询中的空值。根据你的数据库引擎,它可能是这样的(sql server sintax)

- 查询"从yourTable中选择isnull(columnA,''),isnull(columnB,'')等,其中$ conditions"

答案 1 :(得分:-1)

sqoop import --connect jdbc:xxxxxx --username xxxx --password xxxx \
--query "select * from  hive_db.xxxx where \$CONDITIONS" --null-string " " \
--null-non-string " " -m 1 --hive-import --hive-database hivedatabase \
--hive-table table --as-parquetfile --create-hive-table --target-dir /user/hive/warehouse/hivedatabase.db/table