Compartilhar via


Limitações do modo em tempo real

Esta página descreve as limitações conhecidas para o modo em tempo real no Streaming Estruturado.

Limitações de origem

Para o Kinesis, o modo em tempo real não dá suporte ao modo de sondagem. Além disso, as repartições frequentes podem afetar negativamente a latência.

Limitações da união

O operador Union tem algumas limitações:

  • Não há suporte para a auto-união:
    • Para o Kafka, você não pode usar o mesmo objeto de quadro de dados de origem e quadros de dados derivados da união dele. Como solução alternativa, use dataframes diferentes que leem da mesma fonte.
    • Para o Kinesis, não é possível unir quadros de dados derivados da mesma fonte kinesis com a mesma configuração. Como uma solução alternativa, em vez de usar DataFrames diferentes, você pode atribuir uma opção diferente consumerName a cada DataFrame.
  • Operadores com estado (por exemplo, aggregate, , deduplicatetransformWithState) não podem ser definidos antes da União.
  • Não há suporte para a união com fontes de lote.

mapPartitions Limitação

mapPartitions no Scala e APIs de Python semelhantes (mapInPandas, mapInArrow) usa um iterador de toda a partição de entrada e produz um iterador de toda a saída com mapeamento arbitrário entre entrada e saída. Essas APIs podem causar problemas de desempenho no modo em tempo real bloqueando toda a saída, o que aumenta a latência. A semântica dessas APIs não suporta bem a propagação de marca d'água.

Use UDFs escalares combinados com transformar tipos de dados complexos ou filter, em vez disso, para obter funções semelhantes.

transformWithStateInPandas sem suporte

O transformWithStateInPandas operador não tem suporte no modo em tempo real. Se você precisar de processamento com estado personalizado em Python com o modo em tempo real, use a API transformWithState baseada em linha. A API baseada em linha fornece os mesmos recursos de processamento com estado usando Row objetos em vez de DataFrames pandas.

Consulte transformWithState no modo em tempo real para obter detalhes sobre o comportamento transformWithState no modo em tempo real e exemplos de modo Real-time para um exemplo de Python de trabalho usando a API baseada em linha.