2017-02-18 62 views
2

在mysql中有一個表中有一些列有空值的表。我想要sqoop將表導入配置單元。當我做sqoop導入時,我得到了mysql表中有空的列中的所有空值。來自mysql的Sqoop導入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 

但我仍然得到蜂巢的列的空

空intsead這究竟是爲什麼?我如何獲得理想的結果。

回答

1

當您將數據導入爲文本文件以指定空值時,會使用它。

解決方法可能會更改查詢中的空值。取決於你的數據庫引擎,它可能是這樣的(sql server sintax)

--query「select isnull(columnA,''),isnull(columnB,'')等yourTable其中$條件」

+0

所以我們不能用它與拼花地板 – User12345

+0

是的,一種解決方法(更痛苦)是將您的查詢中的空值轉換 – hlagos

+0

如何解決方法看起來像 – User12345