Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette page décrit les limitations connues pour le mode en temps réel dans Structured Streaming.
Limitations de la source
Pour Kinesis, le mode en temps réel ne prend pas en charge le mode d’interrogation. En outre, les repartitions fréquentes peuvent avoir un impact négatif sur la latence.
Limitations de l’union
L’opérateur Union présente certaines limitations :
- L’auto-union n’est pas prise en charge :
- Pour Kafka, vous ne pouvez pas utiliser le même objet de trame de données source et les trames de données dérivées de l’union. Pour contourner ce problème, utilisez différents DataFrames qui lisent à partir de la même source.
- Pourlessuxux, vous ne pouvez pas unioner les trames de données dérivées de la même source d’Mémoires avec la même configuration. Pour contourner ce problème, au lieu d’utiliser différents DataFrames, vous pouvez attribuer une option différente
consumerNameà chaque DataFrame.
- Les opérateurs avec état (par exemple,
aggregate, ,deduplicatetransformWithState) ne peuvent pas être définis avant l’Union. - L’union avec les sources de lots n’est pas prise en charge.
mapPartitions Limitation
mapPartitions dans Scala et des API de Python similaires (mapInPandas, mapInArrow) prend un itérateur de la partition d’entrée entière et produit un itérateur de la sortie entière avec un mappage arbitraire entre l’entrée et la sortie. Ces API peuvent entraîner des problèmes de performances en mode temps réel en bloquant la sortie entière, ce qui augmente la latence. La sémantique de ces API ne prend pas bien en charge la propagation des filigranes.
Utilisez des fonctions scalaires définies par l'utilisateur combinées avec la transformation des types de données complexes ou filter pour atteindre des fonctionnalités similaires.
transformWithStateInPandas non pris en charge
L’opérateur transformWithStateInPandas n’est pas pris en charge en mode temps réel. Si vous avez besoin d’un traitement avec état personnalisé en mode Python en temps réel, utilisez plutôt l’API transformWithState basée sur les lignes. L’API basée sur des lignes fournit les mêmes fonctionnalités de traitement avec état à l’aide d’objets Row plutôt que de dataFrames pandas.
Consultez transformWithState en mode temps réel pour plus d’informations sur le comportement transformWithState en mode temps réel et Exemples de mode temps réel pour obtenir un exemple de Python opérationnel à l’aide de l’API basée sur les lignes.