You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@carbondata.apache.org by xubo245 <gi...@git.apache.org> on 2018/02/23 02:51:05 UTC

[GitHub] carbondata pull request #1654: [CARBONDATA-1856][PARTITION] Support insert/l...

Github user xubo245 commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/1654#discussion_r170155099
  
    --- Diff: hadoop/src/main/java/org/apache/carbondata/hadoop/api/CarbonTableOutputFormat.java ---
    @@ -339,28 +345,47 @@ private static void setFileHeader(Configuration configuration, CarbonLoadModel m
         model.setCsvHeaderColumns(columns);
       }
     
    -  private static class CarbonRecordWriter extends RecordWriter<NullWritable, StringArrayWritable> {
    +  public static class CarbonRecordWriter extends RecordWriter<NullWritable, StringArrayWritable> {
     
         private CarbonOutputIteratorWrapper iteratorWrapper;
     
         private DataLoadExecutor dataLoadExecutor;
     
    +    private CarbonLoadModel loadModel;
    +
    +    private ExecutorService executorService;
    +
    +    private Future future;
    +
         public CarbonRecordWriter(CarbonOutputIteratorWrapper iteratorWrapper,
    -        DataLoadExecutor dataLoadExecutor) {
    +        DataLoadExecutor dataLoadExecutor, CarbonLoadModel loadModel, Future future,
    +        ExecutorService executorService) {
           this.iteratorWrapper = iteratorWrapper;
           this.dataLoadExecutor = dataLoadExecutor;
    +      this.loadModel = loadModel;
    +      this.executorService = executorService;
    +      this.future = future;
         }
     
    -    @Override
    -    public void write(NullWritable aVoid, StringArrayWritable strings)
    +    @Override public void write(NullWritable aVoid, StringArrayWritable strings)
             throws InterruptedException {
           iteratorWrapper.write(strings.get());
         }
     
    -    @Override
    -    public void close(TaskAttemptContext taskAttemptContext) {
    +    @Override public void close(TaskAttemptContext taskAttemptContext) throws InterruptedException {
           iteratorWrapper.close();
    -      dataLoadExecutor.close();
    +      try {
    +        future.get();
    +      } catch (ExecutionException e) {
    +        throw new InterruptedException(e.getMessage());
    --- End diff --
    
    Why did you throw InterruptedException?


---