Share via


DataViewRowCursor Classe

Definição

Classe usada para cursor através de linhas de um IDataView.

public abstract class DataViewRowCursor : Microsoft.ML.DataViewRow
type DataViewRowCursor = class
    inherit DataViewRow
Public MustInherit Class DataViewRowCursor
Inherits DataViewRow
Herança
DataViewRowCursor

Comentários

Observe que isso também é um DataViewRow. O Position é incrementado por MoveNext(). Antes da primeira chamada para MoveNext(), ou depois MoveNext() de retornar false, Position é -1. Caso contrário, quando MoveNext() retornar true, Position>= 0.

Construtores

DataViewRowCursor()

Classe usada para cursor através de linhas de um IDataView.

Propriedades

Batch

Isso fornece um meio para reconciliar várias linhas que foram produzidas geralmente de GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random). Ao obter um conjunto, é necessário, ao mesmo tempo, permitir que o processamento paralelo prossiga, sempre tenha um objetivo de que a ordem original deve ser recuperável. Observe que se um usuário se preocupa ou não com essa ordem original em um aplicativo específico é outra história completamente (a maioria dos chamadores disso como uma questão prática não, caso contrário, eles não o chamariam), mas pelo menos em princípio deve ser possível reconstruir a ordem original que se obteria de uma configuração GetRowCursor(IEnumerable<DataViewSchema.Column>, Random)idêntica. Portanto: para qualquer implementação do cursor, os números do lote devem não estar diminuindo. Além disso, qualquer número de lote determinado só deve aparecer em um dos cursores conforme retornado por GetRowCursorSet(IEnumerable<DataViewSchema.Column>, Int32, Random). Dessa forma, a ordem é determinada pelo número do lote. Uma operação que reconcilia esses cursores para produzir um cursor único consistente, poderia fazê-lo extraindo do cursor único, entre todos os cursores no conjunto, que tem o menor número de lote disponível.

Observe que não há nenhuma sugestão de que os lotes de uma entrada específica serão consistentes do cursor para o cursor, exceto pela consistência em resultar na mesma ordenação geral. A mesma entrada pode ter números de lote diferentes de um cursor para outro. Também não há nenhum requisito de que um determinado número de lote deve aparecer. É apenas um mecanismo para recuperar a ordenação de um particionamento possivelmente arbitrário dos dados. Ele também segue a partir disso, é claro, que considerar o lote como uma propriedade dos dados é completamente inválido.

(Herdado de DataViewRow)
Position

Isso é incrementado quando o conteúdo subjacente é alterado, dando aos clientes uma maneira de detectar alterações. Deve ser -1 quando o objeto estiver em um estado em que os valores não podem ser buscados. Em particular, para um DataViewRowCursor, isso será antes MoveNext() se alguma vez for chamado pela primeira vez ou depois que a primeira vez MoveNext() for chamado e retornar false.

Observe que essa posição não está na posição dentro dos dados subjacentes, mas apenas na posição desse cursor. Se um deles, por exemplo, abrisse um conjunto de cursores de streaming paralelos ou um cursor embaralhado, cada uma dessas entradas válidas sempre teria a posição 0.

(Herdado de DataViewRow)
Schema

Obtém uma Schema, que fornece informações de nome e tipo para variáveis (ou seja, colunas no sistema de tipos do ML.NET) armazenadas nesta linha.

(Herdado de DataViewRow)

Métodos

Dispose()

Implementação de descarte. Chamadas Dispose(Boolean) com true.

(Herdado de DataViewRow)
Dispose(Boolean)

O método descartável para o padrão descartável. Essa implementação padrão não faz nada.

(Herdado de DataViewRow)
GetGetter<TValue>(DataViewSchema+Column)

Retorna um delegado getter de valor para buscar o valor do determinado column, da linha. Isso gera se a coluna não estiver ativa nessa linha ou se o tipo TValue for diferente do tipo dessa coluna.

(Herdado de DataViewRow)
GetIdGetter()

Um getter para um valor de ID de 128 bits. É comum que objetos atendam a várias DataViewRow instâncias para iterar sobre o que deveria ser os mesmos dados, por exemplo, em um IDataView conjunto de cursores produzirá os mesmos dados que um cursor serial, apenas particionado, e um cursor embaralhado produzirá os mesmos dados que um cursor serial ou qualquer outro cursor embaralhado, apenas embaralhado. A ID existe para aplicativos que precisam reconciliar qual entrada é, na verdade, qual. Idealmente, essa ID deve ser única, mas por razões práticas, basta se colisões são simplesmente extremamente improváveis.

Observe que essa ID, embora seja consistente para vários fluxos de acordo com a semântica acima, não é considerada parte dos dados em si. Portanto, para tomar o exemplo de uma exibição de dados especificamente, uma única exibição de dados deve renderizar IDs consistentes em todos os cursores, mas não há nenhuma sugestão de que, se os dados "mesmos" foram apresentados em uma exibição de dados diferente (como por, digamos, sendo transformados, armazenados em cache, salvos ou qualquer outra coisa), que as IDs entre as duas exibições de dados diferentes teriam qualquer relação perceptível.

(Herdado de DataViewRow)
IsColumnActive(DataViewSchema+Column)

Retorna se a coluna fornecida está ativa nesta linha.

(Herdado de DataViewRow)
MoveNext()

Avance para a próxima linha. Quando o cursor é criado pela primeira vez, esse método deve ser chamado para mover para a primeira linha. Retorna false se não houver mais linhas.

Aplica-se a