0
我已經成功地從sqoop
導入數據到hive
。我在Oracle
中添加了一列,並再次使用sqoop-import
將特定列導入hive
。但是,它追加到第一列數據,其餘列爲空,並且沒有新列進入配置單元。任何人都可以解決問題。sqoop-hive導入添加額外列
我已經成功地從sqoop
導入數據到hive
。我在Oracle
中添加了一列,並再次使用sqoop-import
將特定列導入hive
。但是,它追加到第一列數據,其餘列爲空,並且沒有新列進入配置單元。任何人都可以解決問題。sqoop-hive導入添加額外列
不考慮您的import
聲明,我假設您在第二次導入時嘗試附加到現有導入,但僅使用--columns
和--append
參數導入新列。它不會以這種方式工作,因爲它將追加到文件末尾的文件而不是每行的末尾。
您將需要使用--hive-overwrite
覆蓋hdfs中的現有數據;並修改配置單元表來添加額外的列。或者直接刪除配置單元表並在sqoop命令中使用--create-hive-table
。
所以你import
命令應該是這樣的:
sqoop --import \
--connect $CONNECTION_STR \
--username $USER \
--password $PASS \
--table $ORACLE_TABLE \
--hive-import \
--hive-overwrite \
--hive-table \
--hive-home $HIVE_HOME \
--hive-table $HIVE_TABLE
變化值,以環境的實際值
我認爲「--hive覆寫」這將刪除整個表,並再次重新進行吧?這導致了性能問題。 –
同意但你不會每天添加列。這將每年一次或可能在一個月內。我沒有看到任何可以實現您的要求的其他直接sqoop選項。 –
也hdfs不允許修改文件,但允許追加 - 所以sqoop將無法做修改。如果追加現有數據將不會添加列值 –