Share via


HpcLinqQueryable.HashPartition Method (IQueryable, Expression, IEqualityComparer, Int32)

Divides a set of records into the specified number of DSC files by calculating a hash value for a key for the record, and assigns records to DSC files according to that hash value. Records with the same hash value are assigned to the same DSC file. The specified comparer object is used to generate hash values and compare keys.

Namespace: Microsoft.Hpc.Linq
Assembly: Microsoft.Hpc.Linq (in Microsoft.Hpc.Linq.dll)

Usage

'Usage
Dim source As IQueryable(Of TSource)
Dim keySelector As Expression(Of Func(Of TSource, TKey))
Dim comparer As IEqualityComparer(Of TKey)
Dim partitionCount As Integer
Dim returnValue As IQueryable(Of TSource)

returnValue = HpcLinqQueryable.HashPartition(source, keySelector, comparer, partitionCount)

Syntax

'Declaration
<ExtensionAttribute> _
Public Shared Function HashPartition(Of TSource, TKey) ( _
    source As IQueryable(Of TSource), _
    keySelector As Expression(Of Func(Of TSource, TKey)), _
    comparer As IEqualityComparer(Of TKey), _
    partitionCount As Integer _
) As IQueryable(Of TSource)
[ExtensionAttribute] 
public static IQueryable<TSource> HashPartition<TSource,TKey> (
    IQueryable<TSource> source,
    Expression<Func<TSource,TKey>> keySelector,
    IEqualityComparer<TKey> comparer,
    int partitionCount
)
[ExtensionAttribute] 
public:
generic<typename TSource, typename TKey>
static IQueryable<TSource>^ HashPartition (
    IQueryable<TSource>^ source, 
    Expression<Func<TSource, TKey>^>^ keySelector, 
    IEqualityComparer<TKey>^ comparer, 
    int partitionCount
)
J# supports the use of generic APIs, but not the declaration of new ones.
JScript does not support generic types or methods.

GenericParameters

  • TSource
    The type of the records in the source parameter.
  • TKey
    The return type of the function that you specify in the keySelector parameter to generate the key from a record.

Parameters

  • source
    A System.Linq.IQueryable<TSource> interface for the set of records that you want to divide into DSC files.
  • keySelector
    A System.Linq.Expressions.Expression(Func(TSource, TKey)) object that specifies a function that generates a key from each record. The hash partition operation divides the records into DSC files by using a hash value calculated from this key.
  • comparer
    A System.Linq.Expressions.Expression(Func(TSource, TKey)) object that specifies a function that generates a key from each record. The hash partition operation divides the records into DSC files by using a hash value calculated from this key.
  • partitionCount
    An Int32 that specifies the number of DSC files to use for the partitioned set of records.

Return Value

A IQueryable interface that represents the set of records divided according to the hash value of the key for the record.

Exceptions

Exception type Condition
ArgumentNullException

The specified source, keySelector, or partitionCount parameter is a null reference (Nothing in Visual Basic).

Remarks

Use the ToDsc method to write the partitioned set of records to a DSC file set.

To specify that the output file set should have the same number of DSC files and the input file set, use the HashPartition(Generic IQueryable,Generic Expression) or HashPartition(Generic IQueryable,Generic Expression,Generic IEqualityComparer) form of the method. To use the default hash value generator, use the HashPartition(Generic IQueryable,Generic Expression) or HashPartition(Generic IQueryable,Generic Expression,Int32) form of the method.

In Visual Basic and C#, you can call this method as an instance method on any object of type IQueryable<TSource>. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

This method has at least one parameter of type Expression with a type argument that is one of the Func types. For these parameters, you can pass in a lambda expression and it compiles to an Expression.

Platform Note: This method was introduced in Windows HPC Server 2008 R2 with Service Pack 2 (SP2) and is not supported in previous versions.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012

Target Platforms

Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, with HPC Pack Client Utilities

See Also

Reference

HpcLinqQueryable Class
HpcLinqQueryable Members
Microsoft.Hpc.Linq Namespace
ToDsc
HashPartition(Generic IQueryable,Generic Expression)
HashPartition(Generic IQueryable,Generic Expression,Int32)
HashPartition(Generic IQueryable,Generic Expression,Generic IEqualityComparer)

Build Date:

2013-04-22