Package com.datasalt.pangool.tuplemr.Criteria

Examples of com.datasalt.pangool.tuplemr.Criteria.SortElement


    TupleMRConfig config = b.buildConf();


    {
      List<SortElement> expectedCommon = new ArrayList<SortElement>();
      expectedCommon.add(new SortElement("b", Order.ASC, Criteria.NullOrder.NULL_SMALLEST));
      expectedCommon.add(new SortElement("c", Order.DESC, Criteria.NullOrder.NULL_SMALLEST));
      expectedCommon.add(new SortElement("a", Order.DESC, Criteria.NullOrder.NULL_SMALLEST));
      assertEquals(new Criteria(expectedCommon), config.getCommonCriteria());
    }

//    {
//      //TODO this is fragile. there's ambiguity if fields in common schema must be like
View Full Code Here


    TupleMRConfig config = b.buildConf();
    SerializationInfo serInfo = config.getSerializationInfo();

    {
      List<SortElement> expectedCommon = new ArrayList<SortElement>();
      expectedCommon.add(new SortElement("b", Order.ASC, Criteria.NullOrder.NULL_SMALLEST));
      expectedCommon.add(new SortElement("c", Order.DESC, Criteria.NullOrder.NULL_SMALLEST));
      assertEquals(new Criteria(expectedCommon), config.getCommonCriteria());
    }
    {
      List<SortElement> expectedSchema1 = new ArrayList<SortElement>();
      expectedSchema1.add(new SortElement("a", Order.DESC, Criteria.NullOrder.NULL_SMALLEST));
      expectedSchema1.add(new SortElement("blabla", Order.DESC, Criteria.NullOrder.NULL_BIGGEST));
      assertEquals(new Criteria(expectedSchema1), config.getSpecificOrderBys()
          .get(0));
    }
    {
      List<SortElement> expectedSchema2 = new ArrayList<SortElement>();
      expectedSchema2.add(new SortElement("a", Order.DESC, Criteria.NullOrder.NULL_SMALLEST));
      expectedSchema2.add(new SortElement("bloblo", Order.DESC, Criteria.NullOrder.NULL_SMALLEST));
      assertEquals(new Criteria(expectedSchema2), config.getSpecificOrderBys()
          .get(1));
    }

    {
View Full Code Here

    List<SortElement> builder = new ArrayList<SortElement>();
    for (int i = 0; i < numFields; i++) {
      Field field = schema.getField(i);
      if (field.getType() == Type.OBJECT && field.getName().equals("my_avro") && random.nextBoolean()) {
        // With custom comparator
        builder.add(new SortElement(field.getName(), random.nextBoolean() ? Order.ASC
            : Order.DESC, random.nextBoolean() ? Criteria.NullOrder.NULL_SMALLEST
            : Criteria.NullOrder.NULL_BIGGEST, new DummyComparator()));
      } else {
        // Without custom comparator
        builder.add(new SortElement(field.getName(), random.nextBoolean() ? Order.ASC
            : Order.DESC, random.nextBoolean() ? Criteria.NullOrder.NULL_SMALLEST
            : Criteria.NullOrder.NULL_BIGGEST));
      }
    }
    return new OrderBy(builder);
View Full Code Here

  }

  protected static String[] getFirstFields(OrderBy sortCriteria, int numFields) {
    String[] result = new String[numFields];
    for (int i = 0; i < numFields; i++) {
      SortElement element = sortCriteria.getElements().get(i);
      result[i] = element.getName();
    }
    return result;
  }
View Full Code Here

   *
   * @see Order
   */
  public OrderBy add(String name, Order order) {
    failIfFieldNamePresent(name);
    this.elements.add(new SortElement(name, order));
    return this;
  }
View Full Code Here

   *
   * @see Order
   */
  public OrderBy add(String name, Order order, RawComparator<?> comparator) {
    failIfFieldNamePresent(name);
    this.elements.add(new SortElement(name, order, comparator));
    return this;
  }
View Full Code Here

    o.offset1 = s1;
    o.offset2 = s2;
    for(int depth = 0; depth < criteria.getElements().size(); depth++) {
      Field field = schema.getField(depth);
      Field.Type type = field.getType();
      SortElement sortElement = criteria.getElements().get(depth);
      Order sort = sortElement.getOrder();
      RawComparator comparator = sortElement.getCustomComparator();

      if(comparator != null) {
        // Provided specific Comparator. Some field types has different
        // header length and field length.
        int[] lengths1 = getHeaderLengthAndFieldLength(b1, o.offset1, type);
View Full Code Here

  private void initComparators() {
    TupleMRConfigBuilder.initializeComparators(context.getHadoopContext()
        .getConfiguration(), tupleMRConfig);
    customComparators = new RawComparator<?>[maxDepth + 1];
    for(int i = minDepth; i <= maxDepth; i++) {
      SortElement element = tupleMRConfig.getCommonCriteria().getElements().get(i);
      if(element.getCustomComparator() != null) {
        customComparators[i] = element.getCustomComparator();
      }
    }
  }
View Full Code Here

   */
  public int compare(Schema schema, Criteria c, ITuple w1, int[] index1, ITuple w2,
      int[] index2) {
    for(int i = 0; i < c.getElements().size(); i++) {
      Field field = schema.getField(i);
      SortElement e = c.getElements().get(i);
      Object o1 = w1.get(index1[i]);
      Object o2 = w2.get(index2[i]);
      int comparison = compareObjects(o1, o2, e.getCustomComparator(), field.getType());
      if(comparison != 0) {
        return(e.getOrder() == Order.ASC ? comparison : -comparison);
      }
    }
    return 0;
  }
View Full Code Here

  private Criteria convertCommonSortByToCriteria(OrderBy orderBy) {
    if(orderBy == null) {
      // then the common sortBy is by default the group fields in ASC order
      List<SortElement> elements = new ArrayList<SortElement>();
      for(String groupField : groupByFields) {
        elements.add(new SortElement(groupField, Order.ASC));
      }
      return new Criteria(elements);
    } else if(orderBy.getSchemaOrderIndex() == null
        || orderBy.getSchemaOrderIndex() == orderBy.getElements().size()) {
      return new Criteria(orderBy.getElements());
View Full Code Here

TOP

Related Classes of com.datasalt.pangool.tuplemr.Criteria.SortElement

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.