CollectionTRecord, TTimeCoGroupByTKey, TValue1, TValue2, TRecord2, TOutput Method (CollectionTRecord2, TTime, ExpressionFuncTRecord, TKey, ExpressionFuncTRecord2, TKey, ExpressionFuncTRecord, TValue1, ExpressionFuncTRecord2, TValue2, ExpressionFuncTKey, IEnumerableTValue1, IEnumerableTValue2, IEnumerableTOutput)Naiad Help

[This is preliminary documentation and is subject to change.]

Groups records from both input collections using the respective key selector, and applies the given reduction function.

Namespace: Microsoft.Research.Naiad.Frameworks.DifferentialDataflow
Assembly: Microsoft.Research.Naiad.DifferentialDataflow (in Microsoft.Research.Naiad.DifferentialDataflow.dll) Version: 0.5.0.0 (0.5.0.0)
Syntax

C#
Collection<TOutput, TTime> CoGroupBy<TKey, TValue1, TValue2, TRecord2, TOutput>(
	Collection<TRecord2, TTime> other,
	Expression<Func<TRecord, TKey>> keySelector1,
	Expression<Func<TRecord2, TKey>> keySelector2,
	Expression<Func<TRecord, TValue1>> valueSelector1,
	Expression<Func<TRecord2, TValue2>> valueSelector2,
	Expression<Func<TKey, IEnumerable<TValue1>, IEnumerable<TValue2>, IEnumerable<TOutput>>> reducer
)
where TKey : Object, IEquatable<TKey>
where TValue1 : Object, IEquatable<TValue1>
where TValue2 : Object, IEquatable<TValue2>
where TRecord2 : Object, IEquatable<TRecord2>
where TOutput : Object, IEquatable<TOutput>

Parameters

other
Type: Microsoft.Research.Naiad.Frameworks.DifferentialDataflowCollectionTRecord2, TTime
The other collection.
keySelector1
Type: System.Linq.ExpressionsExpressionFuncTRecord, TKey
The key selector applied to records in this collection.
keySelector2
Type: System.Linq.ExpressionsExpressionFuncTRecord2, TKey
The key selector applied to records in the other collection.
valueSelector1
Type: System.Linq.ExpressionsExpressionFuncTRecord, TValue1
Function that transforms a record in this collection to the intermediate value that is stored for each record.
valueSelector2
Type: System.Linq.ExpressionsExpressionFuncTRecord2, TValue2
Function that transforms a record in the other collection to the intermediate value that is stored for each record.
reducer
Type: System.Linq.ExpressionsExpressionFuncTKey, IEnumerableTValue1, IEnumerableTValue2, IEnumerableTOutput
Function that transforms two sequences of intermediate values from each input collection to a sequence of output records.

Type Parameters

TKey
The key type.
TValue1
The type of intermediate values stored for this collection.
TValue2
The type of intermediate values stored from the other collection.
TRecord2
The type of records in the other collection.
TOutput
The result type.

Return Value

Type: CollectionTOutput, TTime
The collection of output records for each group in either input collection.
Remarks

This overload can reduce the amount of storage required compared to CoGroupByTKey, TRecord2, TOutput(CollectionTRecord2, TTime, ExpressionFuncTRecord, TKey, ExpressionFuncTRecord2, TKey, ExpressionFuncTKey, IEnumerableTRecord, IEnumerableTRecord2, IEnumerableTOutput) in cases where the intermediate values are small relative to each original record. The CoGroupByTKey, TValue1, TValue2, TRecord2, TOutput(CollectionTRecord2, TTime, ExpressionFuncTRecord, TKey, ExpressionFuncTRecord2, TKey, ExpressionFuncTRecord, TValue1, ExpressionFuncTRecord2, TValue2, ExpressionFuncTKey, IEnumerableWeightedTValue1, IEnumerableWeightedTValue2, IEnumerableWeightedTOutput) overload can reduce the amount of computation required compared to this overload, by compressing multiple instances of the same value into a single WeightedTRecord value.
See Also

Reference