私のシナリオでは、CSVファイルをHDFSにアップロードしています。最終的に書き込みが完了したら、新しいファイルをHDFSディレクトリでどのように処理するのですか?
新しいファイルがアップロードされるとすぐに、新しいファイルをSpark SQLで処理したいとします(たとえば、ファイル内のフィールドの最大値を計算し、ファイルをparquet
に変換する)。つまり、各入力ファイルと変換/処理された出力ファイルとの間に1対1のマッピングがあります。
私はSpark Streamingを評価してHDFSディレクトリを聞き、Sparkで「ストリームファイル」を処理していました。
しかし、ファイル全体を処理するには、「ファイルストリーム」がいつ完了するかを知る必要があります。ファイル間のエンドツーエンドの1対1マッピングを維持するために、ファイル全体に変換を適用したいと思います。
マイクロバッチではなくファイル全体をどのように変換できますか?
私が知る限り、Spark Streamingはバッチ(はRDDs
にマップされています)への変換を適用することができ、一度に(有限ストリームが完了した時点で)ファイル全体には適用できません。
これは間違いありませんか?もしそうなら、私のシナリオではどのような代替案を検討すべきですか?
ファイルがSpark Streamingで取得される前にHDFSに完全に書き込まれているため、この問題は理解できません。 –
@ cricket_007意味を明確にすることはできますか? –