2

この 1 日間、この方法の適切な解決策を見つけるのに苦労しており、ご意見をお聞きしたいと思います。

大規模で動的な JSON 配列 (文字列化されたオブジェクトのみを含む) を受け取るパイプラインがあります。その配列の各エントリに対して ContainerOp を作成できる必要があります (dsl.ParallelFor を使用)。

これは、小さな入力の場合にうまく機能します。

現在、argo と Kubernetes のパイプライン入力引数のサイズ制限により、配列はファイル http url として入っています (または、現在の未解決の問題から私が理解したことです) が、使用する 1 つの Op からファイルを読み込もうとするとParallelFor の入力として、出力サイズの制限に遭遇しました。

このようなシナリオでは、再利用可能な適切なソリューションは何でしょうか?

ありがとう!

4

1 に答える 1

0

Argo と Kubernetes のパイプライン入力引数のサイズ制限により、配列はファイル http url として入ってきます。

通常、外部データは最初にパイプラインにインポートされます (ダウンロードおよび出力)。次に、コンポーネントはinputPathoutputPathを使用してビッグ データの断片をファイルとして渡します。サイズ制限は、ファイルを使用する代わりに値として使用するデータにのみ適用されますinputValue

ループは値によってデータを消費するため、サイズ制限が適用されます。

できることは、このデータを小さくすることです。たとえば、データが大きなオブジェクトの JSON リストである場合[{obj1}, {obj2}, ... , {objN}]、それをインデックスのリストに変換し[1, 2, ... , N]、そのリストをループに渡し、ループ内でインデックスとデータを使用して単一のピースを選択するコンポーネントを作成できます。作業するN-> {objN}.

于 2020-06-20T01:21:48.473 に答える