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