このページでは、構造化ストリーミングでのリアルタイム モードに関する既知の制限事項について説明します。
ソースの制限事項
Kinesis の場合、リアルタイム モードではポーリング モードはサポートされません。 また、再パーティション分割が頻繁に行われると、待機時間に悪影響が及ぶことがあります。
共用体の制限事項
Union 演算子には、いくつかの制限があります。
- 自己結合はサポートされていません。
- Kafka の場合、同じソース データ フレーム オブジェクトと、そこから派生したデータ フレームを共用体で使用することはできません。 回避策として、同じソースから読み取るさまざまな DataFrame を使用します。
- Kinesis の場合、同じ構成の同じ Kinesis ソースから派生したデータ フレームを結合することはできません。 回避策として、異なる DataFrame を使用する代わりに、各 DataFrame に異なる
consumerNameオプションを割り当てることができます。
- ステートフル演算子 (
aggregate、deduplicate、transformWithStateなど) は、共用体の前に定義できません。 - バッチ データ ソースとの結合はサポートされていません。
mapPartitions 制限
Scala と同様のPython API (mapInPandas、mapInArrow) のmapPartitionsは、入力パーティション全体の反復子を受け取り、入力と出力の間に任意のマッピングを持つ出力全体の反復子を生成します。 これらの API は、出力全体をブロックすることでリアルタイム モードでパフォーマンスの問題を引き起こす可能性があり、待機時間が長くなります。 これらの API のセマンティクスは、ウォーターマークの伝達を適切にサポートしていません。
同様の機能を実現するには、スカラー UDF と 複雑なデータ型の変換 または filter を組み合わせて使用します。