Package org.apache.flink.compiler.operators

Examples of org.apache.flink.compiler.operators.SortMergeJoinDescriptor


      if (PactCompiler.HINT_LOCAL_STRATEGY_SORT_BOTH_MERGE.equals(localStrategy) ||
        PactCompiler.HINT_LOCAL_STRATEGY_SORT_FIRST_MERGE.equals(localStrategy) ||
        PactCompiler.HINT_LOCAL_STRATEGY_SORT_SECOND_MERGE.equals(localStrategy) ||
        PactCompiler.HINT_LOCAL_STRATEGY_MERGE.equals(localStrategy) )
      {
        fixedDriverStrat = new SortMergeJoinDescriptor(this.keys1, this.keys2);
      } else if (PactCompiler.HINT_LOCAL_STRATEGY_HASH_BUILD_FIRST.equals(localStrategy)) {
        fixedDriverStrat = new HashJoinBuildFirstProperties(this.keys1, this.keys2);
      } else if (PactCompiler.HINT_LOCAL_STRATEGY_HASH_BUILD_SECOND.equals(localStrategy)) {
        fixedDriverStrat = new HashJoinBuildSecondProperties(this.keys1, this.keys2);
      } else {
        throw new CompilerException("Invalid local strategy hint for match contract: " + localStrategy);
      }
      ArrayList<OperatorDescriptorDual> list = new ArrayList<OperatorDescriptorDual>();
      list.add(fixedDriverStrat);
      return list;
    }
    else {
      ArrayList<OperatorDescriptorDual> list = new ArrayList<OperatorDescriptorDual>();
     
      joinHint = joinHint == null ? JoinHint.OPTIMIZER_CHOOSES : joinHint;
     
      switch (joinHint) {
        case BROADCAST_HASH_FIRST:
          list.add(new HashJoinBuildFirstProperties(this.keys1, this.keys2, true, false, false));
          break;
        case BROADCAST_HASH_SECOND:
          list.add(new HashJoinBuildSecondProperties(this.keys1, this.keys2, false, true, false));
          break;
        case REPARTITION_HASH_FIRST:
          list.add(new HashJoinBuildFirstProperties(this.keys1, this.keys2, false, false, true));
          break;
        case REPARTITION_HASH_SECOND:
          list.add(new HashJoinBuildSecondProperties(this.keys1, this.keys2, false, false, true));
          break;
        case REPARTITION_SORT_MERGE:
          list.add(new SortMergeJoinDescriptor(this.keys1, this.keys2, false, false, true));
          break;
        case OPTIMIZER_CHOOSES:
          list.add(new SortMergeJoinDescriptor(this.keys1, this.keys2));
          list.add(new HashJoinBuildFirstProperties(this.keys1, this.keys2));
          list.add(new HashJoinBuildSecondProperties(this.keys1, this.keys2));
          break;
        default:
          throw new CompilerException("Unrecognized join hint: " + joinHint);
View Full Code Here

TOP

Related Classes of org.apache.flink.compiler.operators.SortMergeJoinDescriptor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.