Package org.apache.flink.api.common.operators

Examples of org.apache.flink.api.common.operators.Ordering


        .fieldDelimiter(' ')
        .lenient(true)
        .field(StringValue.class, 0)
        .field(IntValue.class, 1);
     
      Ordering ordering = new Ordering(0, StringValue.class, Order.DESCENDING);
      out.setGlobalOrder(ordering, new SimpleDistribution(new StringValue[] {new StringValue("N")}));
     
      Plan p = new Plan(out, "WordCount Example");
      p.setDefaultParallelism(DEFAULT_PARALLELISM);
 
View Full Code Here


  protected void computeOperatorSpecificDefaultEstimates(DataStatistics statistics) {
    // for CoGroup, we currently make no reasonable default estimates
  }
 
  private List<OperatorDescriptorDual> initializeDataProperties() {
    Ordering groupOrder1 = null;
    Ordering groupOrder2 = null;
   
    CoGroupOperatorBase<?, ?, ?, ?> cgc = getPactContract();
    groupOrder1 = cgc.getGroupOrderForInputOne();
    groupOrder2 = cgc.getGroupOrderForInputTwo();
     
    if (groupOrder1 != null && groupOrder1.getNumberOfFields() == 0) {
      groupOrder1 = null;
    }
    if (groupOrder2 != null && groupOrder2.getNumberOfFields() == 0) {
      groupOrder2 = null;
    }
   
    return Collections.<OperatorDescriptorDual>singletonList(new CoGroupDescriptor(this.keys1, this.keys2, groupOrder1, groupOrder2));
  }
View Full Code Here

  public boolean areCoFulfilled(RequestedLocalProperties requested1, RequestedLocalProperties requested2,
      LocalProperties produced1, LocalProperties produced2)
  {
    int numRelevantFields = this.keys1.size();
   
    Ordering prod1 = produced1.getOrdering();
    Ordering prod2 = produced2.getOrdering();
   
    if (prod1 == null || prod2 == null || prod1.getNumberOfFields() < numRelevantFields ||
        prod2.getNumberOfFields() < prod2.getNumberOfFields())
    {
      throw new CompilerException("The given properties do not meet this operators requirements.");
    }
     
    for (int i = 0; i < numRelevantFields; i++) {
      if (prod1.getOrder(i) != prod2.getOrder(i)) {
        return false;
      }
    }
    return true;
  }
View Full Code Here

  @Override
  public void computeInterestingPropertiesForInputs(CostEstimator estimator) {
    final InterestingProperties iProps = new InterestingProperties();
   
    {
      final Ordering partitioning = getPactContract().getPartitionOrdering();
      final DataDistribution dataDist = getPactContract().getDataDistribution();
      final RequestedGlobalProperties partitioningProps = new RequestedGlobalProperties();
      if (partitioning != null) {
        if(dataDist != null) {
          partitioningProps.setRangePartitioned(partitioning, dataDist);
        } else {
          partitioningProps.setRangePartitioned(partitioning);
        }
        iProps.addGlobalProperties(partitioningProps);
      }
      iProps.addGlobalProperties(partitioningProps);
    }
   
    {
      final Ordering localOrder = getPactContract().getLocalOrder();
      final RequestedLocalProperties orderProps = new RequestedLocalProperties();
      if (localOrder != null) {
        orderProps.setOrdering(localOrder);
      }
      iProps.addLocalProperties(orderProps);
View Full Code Here

  }
 
  @Override
  protected void getSinkSchema(SinkPlanNode sinkPlanNode, SparseKeySchema schema) throws CompilerPostPassException {
    GenericDataSinkBase<?> sink = sinkPlanNode.getSinkNode().getPactContract();
    Ordering partitioning = sink.getPartitionOrdering();
    Ordering sorting = sink.getLocalOrder();
   
    try {
      if (partitioning != null) {
        addOrderingToSchema(partitioning, schema);
      }
View Full Code Here

      schema.addType(localPositions[i], types[i]);
    }
   
    // this is a temporary fix, we should solve this more generic
    if (contract instanceof GroupReduceOperatorBase) {
      Ordering groupOrder = ((GroupReduceOperatorBase<?, ?, ?>) contract).getGroupOrder();
      if (groupOrder != null) {
        addOrderingToSchema(groupOrder, schema);
      }
    }
  }
View Full Code Here

    }
   
   
    // this is a temporary fix, we should solve this more generic
    if (contract instanceof CoGroupOperatorBase) {
      Ordering groupOrder1 = ((CoGroupOperatorBase<?, ?, ?, ?>) contract).getGroupOrderForInputOne();
      Ordering groupOrder2 = ((CoGroupOperatorBase<?, ?, ?, ?>) contract).getGroupOrderForInputTwo();
     
      if (groupOrder1 != null) {
        addOrderingToSchema(groupOrder1, input1Schema);
      }
      if (groupOrder2 != null) {
View Full Code Here

      return new FieldList(cols);
    }
  }
 
  public static final Ordering createOrdering(FieldList fields, boolean[] directions) {
    final Ordering o = new Ordering();
    for (int i = 0; i < fields.size(); i++) {
      o.appendOrdering(fields.get(i), null, directions == null || directions[i] ? Order.ASCENDING : Order.DESCENDING);
    }
    return o;
  }
View Full Code Here

    }
    return o;
  }
 
  public static final Ordering createOrdering(FieldList fields) {
    final Ordering o = new Ordering();
    for (int i = 0; i < fields.size(); i++) {
      o.appendOrdering(fields.get(i), null, Order.ANY);
    }
    return o;
  }
View Full Code Here

   *
   * @return True, if the resulting properties are non trivial.
   */
  public LocalProperties filterByNodesConstantSet(OptimizerNode node, int input) {
    // check, whether the local order is preserved
    Ordering no = this.ordering;
    FieldList ngf = this.groupedFields;
    Set<FieldSet> nuf = this.uniqueFields;
   
    if (this.ordering != null) {
      final FieldList involvedIndexes = this.ordering.getInvolvedIndexes();
      for (int i = 0; i < involvedIndexes.size(); i++) {
        if (!node.isFieldConstant(input, involvedIndexes.get(i))) {
          if (i == 0) {
            no = null;
            ngf = null;
          } else {
            no = this.ordering.createNewOrderingUpToIndex(i);
            ngf = no.getInvolvedIndexes();
          }
          break;
        }
      }
    }
View Full Code Here

TOP

Related Classes of org.apache.flink.api.common.operators.Ordering

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.