在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为空
为什么会这样?我如何获得所需的结果。
答案 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