SQOOP-2281: Set overwrite on kite dataset
authorJarek Jarcec Cecho <jarcec@apache.org>
Fri, 3 Apr 2015 16:45:55 +0000 (09:45 -0700)
committerJarek Jarcec Cecho <jarcec@apache.org>
Fri, 3 Apr 2015 16:45:55 +0000 (09:45 -0700)
(Abraham Elmahrek via Jarek Jarcec Cecho)

src/java/org/apache/sqoop/mapreduce/DataDrivenImportJob.java
src/java/org/apache/sqoop/mapreduce/ParquetJob.java
src/test/com/cloudera/sqoop/hive/TestHiveImport.java

index bcf6611..e70d23c 100644 (file)
@@ -103,9 +103,8 @@ public class DataDrivenImportJob extends ImportJobBase {
       // Parquet data records. The import will fail, if schema is invalid.
       Schema schema = generateAvroSchema(tableName);
       String uri = getKiteUri(conf, tableName);
-      boolean reuseExistingDataset = options.isAppendMode() ||
-          (options.doHiveImport() && options.doOverwriteHiveTable());
-      ParquetJob.configureImportJob(conf, schema, uri, reuseExistingDataset);
+      ParquetJob.configureImportJob(conf, schema, uri, options.isAppendMode(),
+          options.doHiveImport() && options.doOverwriteHiveTable());
     }
 
     job.setMapperClass(getMapperClass());
index 85d88ff..df55dbc 100644 (file)
@@ -71,9 +71,9 @@ public final class ParquetJob {
    * {@link org.apache.avro.generic.GenericRecord}.
    */
   public static void configureImportJob(Configuration conf, Schema schema,
-      String uri, boolean reuseExistingDataset) throws IOException {
+      String uri, boolean reuseExistingDataset, boolean overwrite) throws IOException {
     Dataset dataset;
-    if (reuseExistingDataset) {
+    if (reuseExistingDataset || overwrite) {
       try {
         dataset = Datasets.load(uri);
       } catch (DatasetNotFoundException ex) {
@@ -89,7 +89,12 @@ public final class ParquetJob {
       dataset = createDataset(schema, getCompressionType(conf), uri);
     }
     conf.set(CONF_AVRO_SCHEMA, schema.toString());
-    DatasetKeyOutputFormat.configure(conf).writeTo(dataset);
+
+    if (overwrite) {
+      DatasetKeyOutputFormat.configure(conf).overwrite(dataset);
+    } else {
+      DatasetKeyOutputFormat.configure(conf).writeTo(dataset);
+    }
   }
 
   private static Dataset createDataset(Schema schema,
index d6df196..fa717cb 100644 (file)
@@ -307,6 +307,9 @@ public class TestHiveImport extends ImportJobTestCase {
     runImportTest(TABLE_NAME, types, vals,
         "createOverwriteImport.q", getCreateHiveTableArgs(extraArgs),
         new CreateHiveTableTool());
+    runImportTest(TABLE_NAME, types, vals,
+        "createOverwriteImport.q", getCreateHiveTableArgs(extraArgs),
+        new CreateHiveTableTool());
   }
 
   /** Test that dates are coerced properly to strings. */