Compartir a través de


Limitaciones del modo en tiempo real

En esta página se describen las limitaciones conocidas del modo en tiempo real en Structured Streaming.

Limitaciones de origen

Para Kinesis, el modo en tiempo real no admite el modo de sondeo. Además, las reparticiones frecuentes podrían afectar negativamente a la latencia.

Limitaciones de unión

El operador Union tiene algunas limitaciones:

  • No se admite la unión automática:
    • Para Kafka, no puede usar el mismo objeto de trama de datos de origen y uniones de fotogramas de datos derivados de él. Como solución alternativa, use diferentes dataframes que leen desde el mismo origen.
    • Para Kinesis, no se pueden unir fotogramas de datos derivados del mismo origen de Kinesis con la misma configuración. Como solución alternativa, en lugar de usar diferentes dataframes, puede asignar una opción diferente consumerName a cada dataframe.
  • Los operadores con estado (por ejemplo, aggregate, deduplicate, transformWithState) no se pueden definir antes de la Unión.
  • No se admite la unión con fuentes por lotes.

mapPartitions limitación

mapPartitions en Scala y las API de Python similares (mapInPandas, mapInArrow) toma un iterador de toda la partición de entrada y genera un iterador de toda la salida con asignación arbitraria entre entrada y salida. Estas API pueden causar problemas de rendimiento en modo en tiempo real bloqueando toda la salida, lo que aumenta la latencia. La semántica de estas APIs no admite bien la propagación de marcas de agua.

Usa UDF escalar combinadas con Transformar tipos de datos complejos o filter para lograr una funcionalidad similar.