Sqoopのインポート中に毎回手動で上書きするのではなく、HDFSディレクトリを自動的に上書きすることは可能ですか? (Hiveインポート「--Hive-overwrite」のように「--overwrite」のようなオプションはありますか)
--delete-target-dir
を使用します
このディレクトリにデータを書き込む前に、コマンドで指定された<HDFS-target-dir>
を削除します。
これを使って: --delete-target-dir
これは、sqoop構文を使用してhdfsディレクトリを上書きする場合に機能します。
$ sqoop import --connect jdbc:mysql://localhost/dbname --username username -P --table tablename --delete-target-dir --target-dir '/targetdirectorypath' -m 1
例えば:
$ sqoop import --connect jdbc:mysql://localhost/abc --username root -P --table empsqooptargetdel --delete-target-dir --target-dir '/tmp/sqooptargetdirdelete' -m 1
このコマンドは、このコマンドが実行されるたびに、対応するhdfsディレクトリまたはHiveテーブルデータを更新された/更新されたデータで更新します。