if( group.isSortReversed() ) edgeValues.keyComparatorClassName = ReverseTupleComparator.class.getName(); addComparators( edgeValues.config, "cascading.group.comparator", group.getKeySelectors(), edgeValues.getResolvedKeyFieldsMap().get( ordinal ) ); if( !group.isGroupBy() ) addComparators( edgeValues.config, "cascading.sort.comparator", group.getSortingSelectors(), edgeValues.getResolvedSortFieldsMap().get( ordinal ) ); if( group.isSorted() ) if( group.isSortReversed() ) edgeValues.keyComparatorClassName = ReverseGroupingSortingComparator.class.getName(); else
public String getVertexName( Process process ) { String name = "[" + process.getName() + "]"; String sourceName = ""; Set<Tap> sources = process.getSourceTaps(); for( Tap source : sources ) sourceName += "\\nsrc:[" + source.getIdentifier() + "]"; if( sourceName.length() != 0 ) name += sourceName; Collection<Group> groups = process.getGroups(); for( Group group : groups ) { String groupName = group.getName(); if( groupName.length() != 0 ) name += "\\ngrp:" + groupName; } Set<Tap> sinks = process.getSinkTaps(); String sinkName = ""; for( Tap sink : sinks ) sinkName = "\\nsnk:[" + sink.getIdentifier() + "]"; if( sinkName.length() != 0 ) name += sinkName; return name.replaceAll( "\"", "\'" ); } }, null );
protected void buildGraph() { Group group = (Group) Util.getFirst( node.getSourceElements() ); Duct rhsDuct; if( group.isGroupBy() ) rhsDuct = new HadoopGroupByGate( flowProcess, (GroupBy) group, IORole.source ); else rhsDuct = new HadoopCoGroupGate( flowProcess, (CoGroup) group, IORole.source ); addHead( rhsDuct ); handleDuct( group, rhsDuct ); }
protected void buildGraph() { Group group = (Group) Util.getFirst( node.getSourceElements() ); Duct rhsDuct; if( group.isGroupBy() ) rhsDuct = new HadoopGroupByGate( flowProcess, (GroupBy) group, IORole.source ); else rhsDuct = new HadoopCoGroupGate( flowProcess, (CoGroup) group, IORole.source ); addHead( rhsDuct ); handleDuct( group, rhsDuct ); }
if( group.isSortReversed() ) edgeValues.keyComparatorClassName = ReverseTupleComparator.class.getName(); addComparators( edgeValues.config, "cascading.group.comparator", group.getKeySelectors(), edgeValues.getResolvedKeyFieldsMap().get( ordinal ) ); if( !group.isGroupBy() ) addComparators( edgeValues.config, "cascading.sort.comparator", group.getSortingSelectors(), edgeValues.getResolvedSortFieldsMap().get( ordinal ) ); if( group.isSorted() ) if( group.isSortReversed() ) edgeValues.keyComparatorClassName = ReverseGroupingSortingComparator.class.getName(); else
private InputSource handleHead( FlowElement source, FlowProcess flowProcess ) { Duct sourceDuct; if( source instanceof Tap ) sourceDuct = createSourceStage( (Tap) source, flowProcess ); else if( source instanceof Merge ) sourceDuct = createMergeStage( (Merge) source, IORole.source ); else if( source instanceof Boundary ) sourceDuct = createBoundaryStage( (Boundary) source, IORole.source ); else if( ( (Group) source ).isGroupBy() ) sourceDuct = createGroupByGate( (GroupBy) source, IORole.source ); else sourceDuct = createCoGroupGate( (CoGroup) source, IORole.source ); addHead( sourceDuct ); handleDuct( source, sourceDuct ); return (InputSource) sourceDuct; }
if( getGroup().isSortReversed() ) conf.setOutputKeyComparatorClass( ReverseTupleComparator.class ); addComparators( conf, "cascading.group.comparator", getGroup().getKeySelectors(), (Fields) processEdge.getResolvedKeyFields().get( ordinal ) ); if( getGroup().isGroupBy() ) addComparators( conf, "cascading.sort.comparator", getGroup().getSortingSelectors(), (Fields) processEdge.getResolvedSortFields().get( ordinal ) ); if( !getGroup().isGroupBy() ) if( getGroup().isSorted() ) if( getGroup().isSortReversed() ) conf.setOutputKeyComparatorClass( ReverseGroupingSortingComparator.class ); else
private InputSource handleHead( FlowElement source, FlowProcess flowProcess ) { Duct sourceDuct; if( source instanceof Tap ) sourceDuct = createSourceStage( (Tap) source, flowProcess ); else if( source instanceof Merge ) sourceDuct = createMergeStage( (Merge) source, IORole.source ); else if( source instanceof Boundary ) sourceDuct = createBoundaryStage( (Boundary) source, IORole.source ); else if( ( (Group) source ).isGroupBy() ) sourceDuct = createGroupByGate( (GroupBy) source, IORole.source ); else sourceDuct = createCoGroupGate( (CoGroup) source, IORole.source ); addHead( sourceDuct ); handleDuct( source, sourceDuct ); return (InputSource) sourceDuct; }
if( getGroup().isSortReversed() ) conf.setOutputKeyComparatorClass( ReverseTupleComparator.class ); addComparators( conf, "cascading.group.comparator", getGroup().getKeySelectors(), (Fields) processEdge.getResolvedKeyFields().get( ordinal ) ); if( getGroup().isGroupBy() ) addComparators( conf, "cascading.sort.comparator", getGroup().getSortingSelectors(), (Fields) processEdge.getResolvedSortFields().get( ordinal ) ); if( !getGroup().isGroupBy() ) if( getGroup().isSorted() ) if( getGroup().isSortReversed() ) conf.setOutputKeyComparatorClass( ReverseGroupingSortingComparator.class ); else