在Sqoop导入时,是否可以自动覆盖HDFS目录而不是每次手动覆盖它? (我们有像“--overwrite”这样的选项,就像我们对hive导入一样“--hive-overwrite”)
答案 0 :(得分:9)
使用--delete-target-dir
在将数据写入此目录之前,它将删除命令中提供的<HDFS-target-dir>
。
答案 1 :(得分:5)
使用此:--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
E.g:
$ sqoop import --connect jdbc:mysql://localhost/abc --username root -P --table empsqooptargetdel --delete-target-dir --target-dir '/tmp/sqooptargetdirdelete' -m 1
每次运行此命令时,此命令将刷新相应的hdfs目录或hive表数据以及更新/新数据。