Delen via


Beperkingen in realtimemodus

Op deze pagina worden bekende beperkingen beschreven voor de realtime-modus in Structured Streaming.

Bronbeperkingen

Voor Kinesis biedt de realtime-modus geen ondersteuning voor de polling-modus. Frequente repartities kunnen ook een negatieve invloed hebben op de latentie.

Beperkingen van de unie

De operator Union heeft enkele beperkingen:

  • Self-union wordt niet ondersteund:
    • Voor Kafka kunt u niet hetzelfde brongegevensframeobject gebruiken en afgeleide gegevensframes samenvoegen. Als tijdelijke oplossing kunt u verschillende DataFrames gebruiken die uit dezelfde bron worden gelezen.
    • Voor Kinesis kunt u geen gegevensframes samenvoegen die zijn afgeleid van dezelfde Kinesis-bron met dezelfde configuratie. Als tijdelijke oplossing kunt u in plaats van verschillende DataFrames een andere consumerName optie toewijzen aan elk DataFrame.
  • Stateful operators (bijvoorbeeld aggregate, deduplicate, transformWithState) kunnen niet worden gedefinieerd vóór de Unie.
  • Samenvoegen met batchbronnen wordt niet ondersteund.

mapPartitions Beperking

mapPartitions in Scala en vergelijkbare Python API's (mapInPandas, mapInArrow) neemt een iterator van de gehele invoerpartitie en produceert een iterator van de volledige uitvoer met willekeurige toewijzing tussen invoer en uitvoer. Deze API's kunnen prestatieproblemen in realtime veroorzaken door de volledige uitvoer te blokkeren, waardoor de latentie toeneemt. De semantiek van deze API's biedt geen ondersteuning voor het doorgeven van watermerken.

Gebruik scalaire UDF's in combinatie met complexe gegevenstypen transformeren of filter in plaats daarvan om vergelijkbare functionaliteit te bereiken.